WordPress マルチサイト

WordPress3.1.4

WordPress マルチサイト

WordPress マルチサイトの機能はわかりにくいので、メモっておきます。
インストールの仕方、設定の仕方は他にも親切に書いてくださっている方が多いので、下記などをご覧ください。

http://mage8.com/multiple-blogs-on-wordpress.html

マルチサイトの運営には大きく2つの方法があります。
サブドメイン型と、サブディレクトリ型です。
たとえば、元のブログをhogehoge.comで運営しているとします。

  • サブドメイン型…multi1.hogehoge.com にて2つ目のブログを運用
  • サブディレクトリ型…hogehoge.com/multi1 にて2つ目のブログを運用

ということです。

はまってしまったのは

  • 運用から1カ月が経過しているブログは、サブドメイン型でしか設定できなくなってしまう。
  • サブドメイン型とサブディレクトリ型を切り替えしていると、DBへの接続がおかしくなってしまう

です。

ちなみに、サブドメイン型では、ワイルドカードサブドメインを設定しないといけません。
これから察するに、つまり、サブドメイン型のWordPressマルチサイト機能というのは、サブドメインをWordPressで制御しようということなんですね。
これができるサーバーでないと、そもそも設定できません。
マルチサイトにした2つ目のブログのダッシュボードに行くと、Not foundやInternal Server Errorになっている場合は、ワイルドカードサブドメインの設定を見直しましょう。そのほかは、.htaccessの設定が悪い場合もあります。

ちなみに、
multi1.hogehoge.com
の管理画面URLは
multi1.hogehoge.com/wp-admin/
となります。

また、マルチサイトを違うドメインで運用したい場合、ドメインマッピングというプラグインを平行して利用することができます。

下記のサイトに詳しいです。
http://wpgogo.com/customize/wordpress-multisite-multiple-domains.html

しかし、これ、違うドメインでも、ドキュメントルートを合わせておく必要があります。

また、たとえば

 http://hogehoge.com
 http://hoge2.com

で運用したい場合、管理画面のURLはそれぞれ

 http://hogehoge.com/wp-admin/
 http://hoge2.com/wp-admin/

となります。

Domain mappingのDomain Optionsに

Redirect administration pages to site’s original domain (remote login disabled if this redirect is disabled)

という選択肢があるので、いかにも管理画面をhttp://hogehoge.com/wp-admin/に統一とかできそうですが、これは「ダッシュボード」のリンクをクリックした時に、http://hoge2.com/wp-admin/へ行かない、というだけです。

公式サイトの解説です。
http://wpdocs.sourceforge.jp/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E4%BD%9C%E6%88%90

WordPress ページごとにmeta descriptionを設定したり、サイトタイトルを設定する

WordPress

「All in One SEO Pack」というプラグインを利用します。

All in One SEO Pack
http://wordpress.org/extend/plugins/all-in-one-seo-pack/

下記より転載:
SEO対策に効果的なカスタマイズ ? WordPressのプラグイン | All in One SEO Packの使い方 | SEOテンプレート比較
http://www.seotemplate.biz/blog/wordpress-plug/865/

wp-content/plugins/にアップロードし、プラグインを有効化しただけでは、All in One SEO Packは有効になりません。

プラグインを有効化した後に上部に表示されるadmin pageをクリックするか「設定 ⇒ All in One SEO Pack」をクリックし設定画面に入ります。

「Enabled」を選択することでやっと機能するようになります。

「Home Title:」はトップページのtitleタグとなりますので、サイト名を入力します。一般設定で入力したサイトのタイトルよりも優先されます。

サイトのタイトルはサイトのヘッダー部に表示されますので、あまりSEOチックな名前は付けにくいのですが、Home Title:に入力したタイトルは、ページ上には見えないtitleタグなので、キーワードを含めたタイトルにしてもOKです。

「Home Description:」はトップページのmeta descriptionとなりますので、サイトを簡潔に説明する文章を入力します。文字数は100~150文字で良いでしょう。

「Home keywords」はトップページのmeta keywordsとなります。メインキーワードを入力しても構いません。

標準ではカテゴリがインデックスされないようになっていますので、「Use noindex for Categories:」のチェックを外します。

他の項目については、そのままでOKです。

あとは、記事投稿画面で必要に応じ使用してください。

WordPress テーマの管理画面に追加したテーマが表示されない

WordPress

style.cssをデフォルトの場所から移動すると、Wordpressでテーマを圧縮して手動でアップロードしたときに、追加したはずのテーマが表示されません。

wp-content → themes配下に追加したテーマのディレクトリは入っているのですが、管理画面上に表示されません。

アップロードするときにstyle.cssがみつからないというエラーメッセージが出ます。

/wp-includes/functions.php on line 4165
/wp-includes/functions.php on line 4168
/wp-includes/functions.php on line 4171

style.cssの場所は移動しないほうが良いです。

WordPress ダッシュボードで外部フィードを読み込まないようにする

WordPress

WordPressのダッシュボードでRSS/atom等の外部フィードを読み込まないようにする方法です。

イントラネットで外部インターネットにアクセスできない環境でWordpressを構築したところ、外部RSS/atom等のフィードを読み込もうとしているせいか、ダッシュボードの表示に結構時間がかかってしまっていました。

下記コードをfucnctions.phpに追加すると、外部RSS/atom等のフィードの読み込みや、それに関するウィジットが表示されなくなります。

 function remove_dashboard_widgets() {
   
     $widgets = array('dashboard_primary', 'dashboard_secondary', 'dashboard_incoming_links', 'dashboard_plugins');
 	
 	foreach($widgets as $widget) {
 		remove_meta_box( $widget, 'dashboard', 'side' );
 		remove_meta_box( $widget, 'dashboard', 'normal' );
 	}
 } 
 
 // Hoook into the 'wp_dashboard_setup' action to register our function
 add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );

WordPress Lightboxが動作しない

WordPress
Ajax

WordPress Lightboxが動作しない

WordPressの便利プラグインにLightbox2があります。
写真をクリックするとフワーっと大きくなるかっこいいアレです。

しかし、調子に乗っていろんなプラグインを入れているといつの間にか動かなくなっていたLightbox。
「どうしたんだーっ!Lightbox2!!動いてくれ!!」
とジャック・バウアーなみに活を入れても動きません。&cry;

Firebugでエラーを調べると

 element.style is undefined

というエラーがlightbox-resize.jsで出ています。

Pluginなどによって差し込まれたjQueryといつの間にか競合していたんですね。
jqueryとprototype.jsの競合を避ける
にあるように、jqueryとprototype.jsの競合を避ければOKです。

具体的には、テーマファイルの”header.php”の直前に

 <script type="text/javascript">
 	//jQueryとprototypeの競合を避ける
 	jQuery.noConflict();
 </script>

と書いておきましょう。

  • WordPress.org の方の事ですか? — WP.COM でLB {2014-01-23 (木) 02:06:08}