Browsing articles in "WordPress"
8月
25
2010

WordPressのネットワーク機能で予約語のblogを使う方法

WordPress3.0からは複数ブログを設置できるようになりました。

ですが、そのブログ名には登録できない名前(いわゆる予約語)があり、もしその予約語で登録しようとすると、以下のようなエラーメッセージが表示されます。

以下の語句は WordPress の機能によって予約されており、ブログ名として使うことはできません: page, comments, blog, files, feed

しかし、この中にあるblogという予約語ですが、実はこれって互換性のために予約語として残してあったとかだったと思うのですよね。だから別に使っても大した問題はなかったはず…ですので使えるようにしちゃいましょう。

バージョン: WordPress 3.0.1 ja

以下、修正点です。

/wp-includes/ms-functions.php

516行目

$illegal_names = array_merge($illegal_names, apply_filters( 'subdirectory_reserved_names', array( 'page', 'comments', 'blog', 'files', 'feed' ) ) );

$illegal_names = array_merge($illegal_names, apply_filters( 'subdirectory_reserved_names', array( 'page', 'comments', 'files', 'feed' ) ) );

/wp-admin/ms-edit.php:

154行目

$subdirectory_reserved_names = apply_filters( 'subdirectory_reserved_names', array( 'page', 'comments', 'blog', 'files', 'feed' ) );

$subdirectory_reserved_names = apply_filters( 'subdirectory_reserved_names', array( 'page', 'comments', 'files', 'feed' ) );

/wp-includes/ms-settings.php

72行目

$reserved_blognames = array( 'page', 'comments', 'blog', 'wp-admin', 'wp-includes', 'wp-content', 'files', 'feed' );

$reserved_blognames = array( 'page', 'comments', 'wp-admin', 'wp-includes', 'wp-content', 'files', 'feed' );

配列から’blog’を取り除いていくだけです。簡単ですね。

7月
14
2009

WordPress MuのNo-wwwおよび、その他の問題への対処法

注意!!

この記事は古くなっています。最新版はこちらです。
Yuyak – WordPress MU 日本語版

序章

WordPress MUは、WordPressに複数ブログ管理機能を持たせたCMSだ。複数ブログは、サブドメイン形式、またはディレクトリ形式が選べるのでユーザーのニーズに幅広く答えてくれる。WordPressとも高い互換性を持っており、テーマ・プラグインなどは、その大半が何の問題もなく動く。その機能は、ただWordPressを上回っているのみで、なぜ、WordPressが主流で、WordPress MUが副流なのか分からないくらいだ。いや、実はWordPress MUは重大な問題を抱えている。

WordPress MUの持つ問題点

WordPress MUは2009年7月14日現在(ver.2.8.1)、http://www.example.com/のようにwwwをサブドメインにしているサイトにはインストールできない仕様になっている。WordPressMUは、No-www という思想を持っており、それを利用者にも課している。

しかし、GoogleもYahooもサブドメインはwwwだ。WordPressも主流版では、No-wwwのような制限を課していない。こんな悲しいダブルスタンダードはない。

というわけで、以下にそれらの回避法を掲載する。

No-wwwの回避法

WordPressMU 2.8.1です。

/index-install.php

385, 386行目をコメントアウト

//if( substr( $_SERVER[ 'HTTP_HOST' ], 0, 4 ) == 'www.' )
//     $hostname = str_replace( "www.", "", $_SERVER[ 'HTTP_HOST' ] );

544,545行目をコメントアウト

//if( substr( $domain, 0, 4 ) == 'www.' )
//    $domain = substr( $domain, 4 );

743 – 747行目をコメントアウト

//if( substr( $_POST[ 'basedomain' ], 0, 4 ) == 'www.' ) {
//     printheader();
//     nowww();
//     continue;
//}

756行目をコメントアウト

//$_SERVER[ 'HTTP_HOST' ] = str_replace( 'www.', '', $_SERVER[ 'HTTP_HOST' ] ); // normalise hostname - no www.

blogという名前のブログを作成する方法

上位互換性なのかは分かりませんが、blogという名前のブログを作れません。これの回避法。

WordPressMU 2.8.1です。

/wpmu-settings.php

148行目

$reserved_blognames = array( 'page', 'comments', 'blog', 'wp-admin', 'wp-includes', 'wp-content', 'files', 'feed' );

$reserved_blognames = array( 'page', 'comments', 'wp-admin', 'wp-includes', 'wp-content', 'files', 'feed' );

に変更

クラスやIDが勝手に消える

記事投稿したときに、ある要素に対して指定した属性が許可されていない場合、消えてしまいます。それを回避する方法。$allowedposttagsというものがあるので、そこに追加する。

/wp-includes/kses.php

$allowedposttags = array(
  'a' => array(
    'class' => array()
  )
);

一部抜粋ですが、上記のように、要素に対して追加したい属性を指定しておけばOKです。

最後に

以上の下準備を施した後、普通にwwwありのURLでインストールするとうまくいきます。うまくいかなければ、コメントください。ではでは。

あとがき

管理者ログインがうまくいかないときは、クッキー削除したらうまくいくかもしれないです。。

関連リンク

  1. WordPress MU
  2. www. is deprecated.

参考リンク

  1. WordPress MU Stubornly Forces No WWW Subdomains – Huh? And How To Fix It. » Brit Gardner :: Web Developer :: Dallas, Texas
  2. PHP + mysql 制作 Memo wordpress mu の タグに関してidやclassが入力出来ない

Now loading...

PR

Flickr