WordPress Snippet

ワードプレスをカスタマイズしよう

投稿内でショートコードを実行する

WordPressのコアの機能では、captionショートコードや、gallaryショートコードが、ビジュアルエディタで実行されますが、テーマやプラグインで手作りしたショートコードは、ショートコードそのものが表示されるだけで、実際に投稿するとどのように見えるのか プレビューしないと見ることが出来ません。

ビジュアルエディタでも、反映してくれるといいななどと考えていました。

ただ、実際にビジュアルエディタで、ショートコードを実行すると、ショートコードによってはエディタ画面で正しく表示できない事も容易に予想されるため、
実行するショートコードを決めておいて、条件に合う場合には、実行するといったアイディアをメモに残します。

以下の例では、[lorem],’[lorem lang=”ja”]という自作のショートコードを指定していますが、その辺りは、何か簡単なショートコードを作って試してください。

([lorem]は、ダミーテキストを書き出すショートコードです)

add_filter( 'format_for_editor', 'function_name' );

function function_name( $return_value ) {
	
	$reflect_items= array('[lorem]','[lorem lang="ja"]' );
	
	foreach( $reflect_items as $item ) {
		
		$shortcode[]= do_shortcode( $item );
	}
	
	return str_replace( $reflect_items, $shortcode, $return_value );
}

format_for_editor

その2、ショートコードをエディタ内ですべて実行

add_filter( 'format_for_editor', 'function_name' );
 
function function_name( $return_value ) {
	$content= get_post_field('post_content', get_the_ID());
	
	return do_shortcode( $content );
}

[emulsion_relate_posts]