1つのWordPressでマルチサイト機能を使わずに複数サイトを管理する

更新

WordPress
この度あるアフィリエイトサイト(Wordpressで制作)をwebshufu.com内に引っ越しました。webshufu.com内で複数のWordpressサイトを管理することになりましたが、マルチサイト機能を使わずにやることに決めました。

  1. なぜアフィリエイトサイトをwebshufu.com内に引っ越したか
  2. なぜマルチサイト機能を使わないか
  3. アフィリエイトサイトを特定カテゴリ以下で運用する
  4. 条件分岐タグ等で切り替え
  5. 場合分けコード
  6. 場合分け箇所
  7. 見比べてみる

なぜアフィリエイトサイトをwebshufu.com内に引っ越したか

単にサイト管理の手間の問題です。

WordPressを管理していると様々な面倒くさい作業があります。

  • 本体のアップデート
  • データベースのバックアップ
  • プラグインのアップデート
  • テーマファイルのアップデート

他にもサイト管理がらみのタスクはあります。

2つのWordpressサイトを管理するより1つだけ管理したほうが明らかに楽です。

なぜマルチサイト機能を使わないか

マルチサイト機能についてのNaverまとめがありました。

マルチサイト機能のメリットは、複数サイトの管理が1サイトの管理と同じくらいの手間で出来ることなのです。

デメリットは注意点が多いこと。これではせっかくサイト管理そのものの手間が減っても全体としての手間の削減は出来ないかもしれません。

アフィリエイトサイトを特定カテゴリ以下で運用する

そんなこんなでマルチサイト機能を使わずに1ドメインで複数サイトを運営することにしました。

アフィリエイトサイト絡みのカテゴリ・投稿は全て特定カテゴリー「引越し準備段取り」以下に押し込めることにしました。

こんな感じです。↓↓↓

ブログとして運用しているカテゴリー

Marketing
SEO
SNS
ブログ運営
Web
Chrome拡張
CSS
javascript
jQuery
PHP
WEBサービス
WordPress
TwentyElevenカスタマイズ
TwentyTwelveカスタマイズ
WordPress SEO
テスト環境
プラグイン
初心者向け入門講座
管理編集画面
関数テンプレートタグ
主夫の雑感
かわいい
憲法改正
習慣化
健康
ダイエット
低糖質レシピ

アフィリエイトサイトとして運用

引越し準備段取り(カテゴリIDは61)
その他荷造
台所荷造
基礎
引越便利サイト
手続
節約
荷造基本
見積

条件分岐タグ等で切り替え

あとは、アフィサイトとブログで必要な表示切替を行います。

その際活躍するのがPHPのif文による場合分けです。以下のような発想でコードを書きます。

アフィリエイトサイト用の表示

  • カテゴリや投稿の最上位に位置するカテゴリーのIDが61の場合
  • カテゴリーページでIDが61の場合

ブログ用表示

  • 上記の場合以外

場合分けコード

上のような場合分けをする為に下記のコードを書きました。まずまず思い通りに仕事をしてくれています。

<?php 
if(is_single())
{//投稿ページで投稿の属するカテゴリーIDを取得
$cates = get_the_category(); $cat = $cates[0];$category_id=$cat->cat_ID;
}
else if(is_category())
{//カテゴリページでカテゴリーIDを取得
$category_id=get_query_var('cat');
}
//取得したカテゴリIDの上位カテゴリーのIDを最上位にいたるまで配列で取得
$ancestors=get_ancestors($category_id, 'category' );
//配列$ancestorsの要素数を取得
$kosu=count($ancestors);
//最上位カテゴリのIDが61、またはカテゴリページのカテゴリIDが61
if($ancestors[$kosu-1]==61||$category_id==61)
{
(アフィリエイトサイト用表示)
}
else
{
(ブログ用表示)
}
?>  

このコードの肝はget_ancestors関数です。こちらを参考に。

場合分け箇所

ここから先はほとんど自分のためのチートシートです。

header.php

  • $site_title_href…ヘッダーのリンク先
  • $site_title…ロゴの文字列
  • $site_description…ロゴ下の説明文
  • $webshufu_menu_name…メニューバーに使用するカスタムメニュー
  • GoogleAnalyticsトラッキングコード
  • 検索窓下のソーシャルボタン

pankuzu.php

  • パンくずリストにブログトップへのリンクを含めるか否か

category.php

  • SNSボタン
  • 更新日表示するかどうか
  • アドセンス表示するかどうか。代わりの広告の表示設定

single.php

  • 更新日表示するかどうか
  • アドセンス表示するかどうか。代わりの広告の表示設定
  • Facebook Likebox表示するかどうか
  • 関連記事リスト

sidebar

  • sidebar-○○の形でブログ用とアフィリエイトサイト用のサイドバーを作る。

feedの設定

  • http://webshufu.com/feed/にはブログとして運用しているカテゴリーに属する投稿のみ表示。

具体的には以下のコードを書きました。

//フィードには、健康23、主夫の雑感20、マーケティング31、ウェブ6、ワードプレス7以下のカテゴリーのみ含める    
function myFilter($query) {
if ($query->is_feed && !is_category()) {
$query->set('cat','23,20,31,6,7');
}
return $query;
}
add_filter('pre_get_posts','myFilter');

Tweet Old Post

  • アフィリエイトサイトとして運用している「引越し準備段取り」カテゴリーとその子孫カテゴリーは除外する

見比べてみる

最後に、カテゴリー「引越し準備段取り」以下に属するアフィリエイトサイトのページとそれ以外のページを見比べます。

見かけ上は問題なく2サイト運営できている感じです。

カテゴリページ

ブログとして運用しているカテゴリー

アフィリエイトサイトとして運用しているカテゴリー

個別投稿ぺージ

ブログ投稿

アフィリエイトサイト用投稿

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です