スポンサードリンク

wordpress
wordpress

このブログでも利用しています、『Adsense

WordPressで記事を書いている際に、

文章の中にAdsenseを入れるといいと言われているため

文章の中にある【more】を置き換える方法を覚え書きで書いておきます。

(参考)WordPressスマフォページの「記事中」にアドセンスを表示する方法とメリット

スポンサードリンク

記事中にあるmoreをAdsenseコードに置き換える方法

moreタグ
moreタグ

WordPressで文章を書いている際に、

途中で折りたたむための【more】を使います。

こちらは記事を全文を表示するか途中までかを判定する際にしようするため

表示自体はコメントアウトになっています。

実際の表示では上記のようにPタグとSPANタグでHTML表示に変わっています。


<p><span id="more-投稿ID"></span></p>

※【投稿ID】の部分に記事のIDが表示されます。

この表示をAdsenseコードに置き換えれば

記事の中にAdsenseコードが表示されるようになります。

タグをReplace関数を使って置き換える

コーディング
コーディング

テーマにある【function.php】の最後の方に下記のコードを追加します。

※追加する前に必ずバックアップを取ってください。

画面が真っ白になってびっくりしますからね。

//--------------------------------------------------
//Adsense more用
//--------------------------------------------------
function adMoreReplace($contentData) {    

//スマホ用
if(wp_is_mobile()){
$adTags = <<< EOF
<p>スポンサードリンク</p> 

//スマホ用Adsenseコード

</script>
EOF;
}else{
$adTags = <<< EOF
<p>スポンサードリンク</p>

//PC用Adsenseコード

EOF;
}  
    $contentData = preg_replace('/<span id="more-[0-9]+"><\/span>/', $adTags, $contentData);
    $contentData = str_replace('<p></p>', '', $contentData);
    $contentData = str_replace('<p><br />', '<p>', $contentData);   
 
    return $contentData;
}
add_filter('the_content', 'adMoreReplace');

解説

if(wp_is_mobile()){
$adTags = <<< EOF
<p>スポンサードリンク</p> 

//スマホ用Adsenseコード

</script>
EOF;
}else{
$adTags = <<< EOF
<p>スポンサードリンク</p>

//PC用Adsenseコード

EOF;
}  

まず、IF文を使って7行目で表示されているのがスマホかどうかを判定しています。

今はレスポンシブが普通なのでここはいらないかもしれませんね。

8行目、16行目で変数にEOFを使ってAdsenseコードを代入します。

EOFは左側にタブやスペースがあるとエラーが起こるため

左詰でAdsenseコードを貼り付けます。

    $contentData = preg_replace('/<span id="more-[0-9]+"><\/span>/', $adTags, $contentData);
    $contentData = str_replace('<p></p>', '', $contentData);
    $contentData = str_replace('<p><br />', '<p>', $contentData);   
 
    return $contentData;

23行目でpreg_replace関数で正規表現を使って

【more】の部分を今回のAdsenseコードと置き換えます。

24行目と25行目でいらないPタグなどを空白に置き換えます。

そして、置き換えたものをreturnを使って返しています。

add_filter('the_content', 'adMoreReplace');

最後にadd_filterというWordpressのフック関数を使って

今回作成したadMoreReplace関数をthe_content関数にひっかけています。

これで【more】タグが全文表示するとAdsenseコードに置き換わります。

スポンサードリンク

まとめ

パソコン作業
パソコン作業

ずいぶん前から使用していた内容ですが、

テーマを更新したりすると忘れてしまうため

健忘録のために残しておきます。

最近は別の方法を見つけたので

次回はその方法を書きたいと思います。

スポンサードリンク