WordPressブログを運営していて「もっと楽になれば良いな」と思うことは多いです。
最悪、手作業ですべて解決できますが、いちいちメンテするのが面倒です。
プログラミングですべて自動化できれば「楽」になって良いと思いませんか?
例えば
- PV数によってWebサイトの表示内容を変えたい
- よく読まれている記事を個別に紹介したい
- 300種類以上の広告を貼り付けたい
上は僕がワードプレスのブログを運営していて直面した課題です。
これらを手作業で解決するのは億劫で仕方がなかったわけです。
なので、すべてプログラミングで解決することにしました。
本記事では、実際にサイトで動かしているPHPコードも公開した上で、Webサイト(ワードプレスブログ)を自動化するポイントを解説します。
ぜひ、Webサイトを自動化してみると良いと思います。
WordPressブログ運営で面倒なのはメンテナンス
先ず、言いたいのは「メンテナンス≠リライト」です。
リライトはさすがに人力でしか解決できません。
大方Webサイトにおけるメンテナンスは下記です。
メンテナンス
- 内部リンクの貼り替え
- 広告の貼り替え
- 文中への内部リンク、広告の貼り付け
コンテンツが増えれば増えるほど、これらメンテナンスの手間が増えていくという地獄絵図です。
誰もがSEO的にも内部リンクを充実させた方が良いと知っています。
200記事以上あるブログのすべてに"内部リンク"を貼り付けるとしましょう。
そして、数ヶ月後、意図したほどPVがふるわなかったので"別の内部リンク"に張り替えましょう。
Webサイトを運営すると、こんなことを永遠とやり続けるわけです。
まさに地獄です。
なので、そんな手作業から解放されるため、全部プログラミングで自動化させてしまいましょう。
① PV数によってWebサイトの表示内容を変える
PV数によってWebサイトの表示内容を変えたいシーンは何気にかなり多いです。
例えば
- PVが一定数を超えるまで広告を一切表示させない。
意図するのは「広告表示を最小限にすること」です。
これはSEO的にも道理にかなっています。
広告表示の理想は
- アクセスがあるコンテンツに漏れなく広告を表示すること
- アクセスがない記事には広告を一切表示しないこと(広告を表示しても収益に繋がらないから)
これが理想です。
ただ、ほとんどのWebサイトでは、これを手作業でやっているのが現状です。
プログラミングしてしまえば一瞬で解決できる一番簡単なケースです。
// PVが100以上の場合に処理をする
if ( get_post_meta( get_the_ID(), 'ct_post_views_byloos', true ) > 100 ) {
}
今回の例では「SWELL」というテーマで定義されるPV数(カスタムフィールド名:ct_post_views_byloos)を取得して条件分岐に利用しました。
「SWELL」以外のテーマの方は、他のやり方でPV数を取得する必要があります。
やり方は色々ありますので調べて見て下さい(と言っても、とても簡単ですが。)。
分からなければ、コメントで質問して下さい。
② よく読まれている記事を個別に紹介する(内部リンクを自動表示)
アクセスがある記事が"よく読まれる記事"ということです。
"よく読まれる記事"を具体的なPV数で言えば、公開した直後一ヶ月目に100PV以上ある記事です。
本来、記事を公開した後は、半年後からアクセスがつき始めるので直後に100PVつく記事というのは、かなりニーズのある記事だと言えるわけです。
内部リンクの理想
アクセスのある記事同士をリンクで繋ぐ
アクセスのある記事
// 本文の内容の最後に要素を追加
if ( has_tag( array('no-motion-article') ) ){
} elseif ( has_tag( array('geforce-now') )) {
$content .= ''; // ブログパーツ H2すべて
$content .= ''; // ブログパーツ 宣伝:M1・M2 Macでも無料でWindows11が使える!
} elseif ( has_tag( array('parallels') )) {
$content .= ''; // ブログパーツ H2すべて
$content .= ''; // ブログパーツ 宣伝:M1・M2 MacでもApexでゲーム配信できる!
} else {
$content .= ''; // ブログパーツ H2すべて
$content .= ''; // Advanced Ads ローテーション記事
}
③ 自動で300種類以上の広告を隈なく貼り付ける
広告の貼り付けを面倒くさがると一向に収益が上がりません。
ただ、"広告の貼り付け"はめちゃくちゃ面倒臭いです。
何よりせっかく貼り付けた広告でも「収益が上がらない」なんてのはザラです。
広告は貼り付ける場所も決まっているので自動で貼り付ける方が良いでしょう。
広告を貼り付ける場所
- H2タグ手前
- H3タグ手前
- Pタグ手前
WordPressブログの記事中にある広告スペースは3パターンしかありません。
厳密にはオーバレイ広告もあり得ますが、操作性を損なうので僕はオーバレイ広告を設置していません。
ということで、各タグの手前に広告が表示されるようプログラミングすれば「広告を自動表示できる」わけです。
ポイント①:文書処理には正規表現を使う
$h2ad = ''; // ブログパーツ H2すべて
$h3ad = ''; // Advanced Ads 期間限定
$h2 = '/^<h2.*?>.*?<\/h2>$/im'; //H2見出しのパターン
$h3 = '/^<h3.*?>.*?<\/h3>$/im'; //H3見出しのパターン
正規表現?なんだそれ?
となりがちですが、正規表現は$h2 = '/^<h2.*?>.*?<\/h2>$/im';
の箇所です。かなり使えるテクニックなので必ず使えるようになった方が良いです。
これで記事中にある<h2>〜</h2>
を抽出します。
初見の方は何となく理解すれば良いです。分からなければ、コメントで質問して下さい。
ポイント②:抽出した「タグ」を「広告+タグ」で繰り返し置換する
if ( preg_match_all($h2,$content,$h2s) ) { // H2見出しが本文中にあるかどうか
for ( $i=1; $i<count($h2s[0]); $i++ ){ // SWELLの目次にバグが出るので2つ目のh2タグから表示
$content = str_replace($h2s[0][$i], $h2ad.$h2s[0][$i], $content);
}
}
if ( preg_match_all($h3,$content,$h3s) ) { // H3見出しが本文中にあるかどうか
for ( $i=0; ($i*3)<count($h3s[0]); $i++ ){
$content = str_replace($h3s[0][($i*3)], $h3ad.$h3s[0][($i*3)], $content);
}
}
抽出したタグに広告を追加して置換すればH2タグ
やH3タグ
の手間に広告を表示できます。
具体的には、置換処理は<h2>〜</h2>
を広告+<h2>〜</h2>
に置換しています。
コメント