【ワードプレス】記事の先頭にウィジェットを挿入する方法

ワードプレスのウィジェットを記事中に挿入して表示させる方法です。

まずは、サイドバーにウィジェットを登録。

次に、以下のコードをfunctions.phpに加えてください。

if( ! function_exists('insert_widget_to_content') ):
	function insert_widget_to_content($content) 
	{
		/**
		 * pタグで囲まれた最初の文の先頭にウィジェットを挿入
		 */
		return preg_replace_callback('/<p>(.*)<\/p>/', function($matches){
			ob_start();
			dynamic_sidebar(1); // サイドバーIDを指定
			$widget = ob_get_contents(); // 指定したサイドバーのウィジェットを取得
			ob_end_clean();
				
			return "<p>{$widget}{$matches[1]}</p>";
		}, $content, 1); 
	}
	add_filter('the_content', 'insert_widget_to_content', 99, 1);
endif;

ちなみに、以下のように設定されている場合、上記のコードは正しく動作しません。

remove_filter('the_content', 'wpautop');

 

お気軽にコメントをどうぞ

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください