moreタグの置換やQuick Adsenseを使わず、記事途中にアドセンスなどを表示する方法

シェアする

wordpress001

moreタグやプラグインを使わず記事途中にアドセンスを挿入する方法に関する覚書です。

現在はこちらの方法の方がいいですね、
WordPressで記事中H2の手前のウィジェット(広告・アドセンス)をカスタマイズする方法

スポンサーリンク

moreタグにアドセンスを挟む方法は使えない。

moreタグはいちいち挟むのが面倒なので、使っていませんでした…。
字数できるようにしていたため、アドセンスを入れるとおかしなことになります。
だからといって、すべてのページにmoreタグを挟むなんて面倒なことは、やっていられません。

スポンサーリンク

電子書籍のおすすめ比較

Quick Adsenseもつかいずらい

Quick Adsenseの使い方は簡単ですが、Pタグしかできません。Hタグの下にだしたいです。
表示されない等の不具合もあるようです。

追記:最近更新もされていません。。

ただ、Quick Adsenseはコード作成のヒントにはなりました。

スポンサーリンク

コードで実装

出来上がったコードはこちらです。functions.phpに挟みます。

/**
 * wordpressの記事中にウィジェットを追加
**/
add_filter( 'the_content', 'my_content_filter' );

function my_content_filter( $return_value ) {

	$num_p = 3; //段落数
	$result = '';
	$return_value = explode( '</p>', $return_value );

	foreach( $return_value as $key => $val ) {

		if( $key + 1 == $num_p  && !empty( $val ) ) {
			$result .= $val.'</p><!--ReplaceLabel-->';//コードを追加
		}else{
			$result .= $val.'</p>';
		}
	}

	// 設定したコードを検索して置換を実行する
	// preg_replace_callbackの引数:検索、置換後、置換前、置換する回数、置換した回数
	$result = preg_replace_callback( '|<!--ReplaceLabel-->|', 'get_the_widget_in_post', $result, 1, $count ); 
	if ( $count == 1 ) {

		return $result;
	}

	return $return_value;
}



function get_the_widget_in_post( $matches ) {

	ob_start();

	if( in_category('カテゴリ指定')) { //表示したいカテゴリを指定する
		dynamic_sidebar(post_top); //idを指定
	}
	$out = ob_get_clean();

	return $out;
}

最終的に参考にさせてもらったサイトはWPのフォーラムです。大変、勉強させてもらいました。

フォーラム » 記事中の任意の場所に、ウィジェットを追加をしたい — WordPress

スポンサーリンク

シェアする

フォローする