WordPress

ショートコードで別の固定ページの内容を表示させる

ショートコードを記述して呼び出す方法をググったメモ

functions.php

function page_content_include($atts) {
	extract(shortcode_atts(array(
	  'slug' => 'default'
	), $atts, 'page_scode'));
  
	ob_start();
	$page_info = get_page_by_path( $slug );
	$page = get_post($page_info);
	ob_end_clean();
	return do_shortcode( $page->post_content );
  }
 add_shortcode('page_scode', 'page_content_include');

呼び出すページをdivで囲みたい

ショートコードで呼ばれたページの内容をdivで囲みたかったのでさらに追記。

function page_content_include($atts) {
	extract(shortcode_atts(array(
	  'slug' => 'default'
	), $atts, 'page_scode'));
  
	ob_start();
	$page_info = get_page_by_path( $slug );
	$page = get_post($page_info);
	$embed = '<div class="page-embed-wrap">' .$page->post_content. '</div>';
	ob_end_clean();
	return do_shortcode( $embed );
  }
 add_shortcode('page_scode', 'page_content_include');

ページ内にショートコードを挿入する

[page_scode slug='表示させたいスラッグ名']

グーテンベルクになってから、ショートコードの挿入も楽になりました。

注意

extract()を使うのはもう非推奨みたいです。。。(WordPress ショートコード作成でextract()を使うのはもうやめよう

ブックマーク

参考:ショートコードで別の固定ページの内容を表示させる方法

関数リファレンス/get post

  • この記事を書いた人

ゆず

忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
一杯おごる

-WordPress
-