サポート » テーマ » 固定ページを埋め込む時にショートコードが効かない

  • 解決済 keiichiy

    (@keiichiy)


    <?php
    $page_info = get_page_by_path(‘hoge’);
    $page = get_post($page_info);
    echo $page->post_content;
    ?>
    などで、任意の場所に特定の固定ページを埋め込んだ時に、
    その固定ページの投稿で使用しているショートコードが機能しません。
    仮にスライダーなど場合、[slider]などというショートコードがそのまま表示されます。

    固定ページ内の投稿をそのまま引用して表示しているのだと思うので、
    画像やテキストなどのhtmlは正しく表示され、
    処理が必要なショートコードは記述のまま表示されてしまうことはわかります。

    できれば、ショートコードも使用しページの埋め込みも使用したいので、
    解決する方法を知っている方、ご教授ください。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 固定ページのオブジェクトから post_content を直接取り出すと、ショートコードを展開するためのフィルターを適用する機会がないので、keiichiyさんが経験したとおりになるのがふつうです。ショートコードを展開させるには、そのためのフィルターを適用するコードを自分で書く必要があります。テンプレートタグ the_content() の「別の使い方」セクションに例が載っていますので参考にどうぞ。

    gblsmさん、
    なるほど、普通にWP_Queryかなにかで投稿を読み出せばよかったのですね。

    <?php $args = array(
    ‘posts_per_page’ => 1,
    ‘post_type’ => ‘page’,
    ‘name’ => ‘hoge’,
    ); ?>
    <?php $loop = new WP_Query( $args );
    if($loop -> have_posts()): while($loop -> have_posts()): $loop -> the_post(); ?>
    <?php the_content(); ?>
    <?php endwhile; endif; ?><?php wp_reset_postdata(); ?>

    以上のようなコードで思った通りの表示ができました。
    ありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「固定ページを埋め込む時にショートコードが効かない」には新たに返信することはできません。