ショートコードを記述して呼び出す方法をググったメモ
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()を使うのはもうやめよう)