PukiWikiの改造方法
私がやったPukiWikiの改造方法について説明します。まず、MenuBar を使用できるようにしました。パンくずリストの表示を変更し、トップページのURLから「?FrontPage」を取り除きました。その他、様々な変更を施しています。
PukiWikiの改造方法
行数の数値は 改造楽天 後に少し変わっている場合がありますのでだいたいの目安です。
MenuBar を使用できるようにします。(plugin/menu.inc.php)
// サブメニューを使用するように変更 define('MENU_ENABLE_SUBMENU', FALSE);
を
define('MENU_ENABLE_SUBMENU', TRUE);
に変に変更してサブメニューを使えるようにしました。
パンくずリストの表示と変更(plugin/topicpath.inc.php)
つぎのように、パンくずリストを表示させて、トップを「Top」と表示、セパレータを「>」に変更、自身のページも表示、リンクもさせる設定にしました。
// Show a link to $defaultpage or not define('PLUGIN_TOPICPATH_TOP_DISPLAY', 1); // Label for $defaultpage define('PLUGIN_TOPICPATH_TOP_LABEL', 'Top'); // Separetor / of / topic / path define('PLUGIN_TOPICPATH_TOP_SEPARATOR', ' > '); // Show the page itself or not define('PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY', 1); // If PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY, add a link to itself dedefine('PLUGIN_TOPICPATH_THIS_PAGE_LINK', 1);
ls2が出力する「cmd=read&page=」を削除(plugin/ls2.inc.php)
ls2プラグインのままでは、ls2のリンクからジャンプした場合と、普通のリンクからジャンプした場合で、URLが違うので、SEOの面で不利です。そこでls2が出力する「cmd=read&page=」を削除しました。
次のようにplugin/ls2.inc.phpの126行目付近の「cmd=read&page=」を削除します。
// $href = $script . '?cmd=read&page=' . $r_page; $href = $script . '?' . $r_page;
トップページのURLから「?FrontPage」を取り除きます。
ページを指定しない場合、「index.php」を取り除いてあっても、URLはhttp://hogehoge.jp/?FrontPageというアドレスになりますので、トップページから「?FrontPage」を取り除きます。URLは短い程良いとの考えと、SEOの観点から複数のアドレスで同じページにアクセスしないようにする為です。
.htaccessファイルでやる方法
.htaccessファイルに次の記述を追加します。PukiWikiをサブディレクトリに設定した場合です。
RewriteEngine on # Remove '?FrontPage' RewriteCond %{QUERY_STRING} ^FrontPage$ RewRewriteRule ^(.*)$ /$1? [R=301,L]
(lib/html.php)でやる方法も適用します
lib/html.phpの59行目付近を次のように変更します。しかし、この方法だけでは「?FrontPage」を取り除いたアドレスが生成されますが、「?FrontPage」を付加してアクセスすると「?FrontPage」が表示されてしまいます。
// $_LINK['top'] = "$script?" . rawurlencode($defaultpage); $_LINK['top'] = "$script";
外部リンクの「rel=nofollow」をやめる(lib/make_link.php)
この「rel=nofollow」は、リンクをページランクに反映させないものですが、PukiWikiの場合は外部リンク全てに入るようになっています。有用なリンクに対してはnofollow属性を表示しないようにしたいものです。
381行目付近で、次のようにサイトを指定してnofollow属性を取り除く方法をやってみました。hoge.jpの場合かhogehoge.netの場合はnofollow属性が取り除かれます。
function toString() { // if (FALSE) { if( preg_match( '/hoge.jp|hogehoge.net/', $this->name ) ) { $rel = ''; } else { $rel = ' rel="nofollow"'; } return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>'; }
ページタイトル部分のリンクを削除します。(lib/pukiwiki.php)
PukiWiki の元のままの状態では、ページタイトルをクリックすると、何か得体の知れない「Backlinks for ページタイトル」というページへリンクするようになっています。このリンクはほとんど意味が無いので、このリンクを無効にします。
105行目付近が
$title = htmlspecialchars(strip_bracket($base)); $page = make_search($base); if (isset($retvars['msg']) && $retvars['msg'] != '') {
となっているのを、次のように変更します。
$title = htmlspecialchars(strip_bracket($base)); //$page = make_search($base); $page = $title; if if (isset($retvars['msg']) && $retvars['msg'] != '') {
ページタイトル下のURLを非表示にします。(skin/pukiwiki.skin.php)
ページタイトル下には、そのページのアドレスが表示されています。PukiWikiの場合、長くなるのでこれを非表示にします。
22行目付近の設定が「1」になっているので、これを「0」にします。
// SKIN_DEFAULT_DISABLE_TOPICPATH // 1 = Show reload URL // 0 = Show topicpath if (! defined('SKIN_DEFAULT_DISABLE_TOPICPATH')) define('SKIN_DEFAULT_DISABLE_TOPICPATH', 0); // 1, 0