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