サポート » 使い方全般 » テーマphpファイル内へのショートコード記載の件

  • 解決済 osat99

    (@osat99)


    お世話になります。テーマフォルダ内にある構成ファイル(phpファイル)へプラグイン「display post」のショートコードを加筆したいのですが、例えば以下のようにある場合、どう加筆すればよろしいでしょうか?ご教授いただけますと助かります。

    $slide_html .= '<div id="test">
    ここへショートコードを入れたいです。
    $slide_html .= '</div>

    そのまま

    <?php echo do_shortcode('display-posts'); ?>

    と入れるとエラーになるもので。

    よろしくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • shokun0803

    (@shokun0803)

    osat99さん、こんにちは。

    見た限り入れたい場所はすでに<?php ?>で囲われた場所かと思いますので、echo do_shortcode('display-posts');だけを追記頂ければよろしいかと思われます。

    ご参考になれば。

    トピック投稿者 osat99

    (@osat99)

    $slide_html .= '<div id="test">
    echo do_shortcode('display-posts');
    $slide_html .= '</div>

    と記載してみたのですが、「このサイトで重大なエラーが発生しました。」となってしまいました。

    トピック投稿者 osat99

    (@osat99)

    $slide_html .= '<div id="test">'
    echo do_shortcode('display-posts');
    $slide_html .= '</div>'

    こうでした。なにも表示されないですね。エラーにはならないですが。

    • この返信は9ヶ月前にosat99が編集しました。
    shokun0803

    (@shokun0803)

    osat99さん、こんにちは。

    前の行にセミコロン;がないですねー、それコードを入れる前の状態で動いてました?

    $slide_html .= '<div id="test">';
    echo do_shortcode('display-posts');
    $slide_html .= '</div>';

    全体のコードが見えないので何とも言えませんが、こんな感じでどうでしょう?

    ただし、おそらくですが$slide_htmlの変数を作ってからまとめて表示しようとしているコードに見えますので、そこでechoしてしまうと意図しない場所に表示されてしまいそうな気がします。

    $slide_html .= '<div id="test">';
    $slide_html .= do_shortcode('display-posts');
    $slide_html .= '</div>';

    みたいな感じで間に入れ込まないとだめだと思いますけど、do_shortcodeは変数内に展開されるかな?試していないのでちょっと分かりません。

    ご参考になれば。

    トピック投稿者 osat99

    (@osat99)

    セミコロンは入ってました。転載ミスです。コードを入れる前は、はい、動いておりました。

    $slide_html .= '<div id="test">';
    $slide_html .= do_shortcode('display-posts');
    $slide_html .= '</div>';

    と記載してみたのですが、display-postsという文字列が表示されるのみですね。

    トピック投稿者 osat99

    (@osat99)

    あと、Display Posts自体のショートコードは動いております。そちらはテスト済みです。

    トピック投稿者 osat99

    (@osat99)

    整理しますと、

    $slide_html .= do_shortcode('display-posts');

    こちらの挿入方法ですと、指定箇所にdisplay-postsの文字列の表示のみ となりまして、

    echo do_shortcode('display-posts');

    こちらですと、指定箇所ではない場所(ページの先頭箇所)にdisplay-postsの文字列が表示される状態です。

    トピック投稿者 osat99

    (@osat99)

    display-postsの文字列が出てしまうということは、ショートコードの書き方が間違ってるんでしょうか?

    トピック投稿者 osat99

    (@osat99)

    $slide_html .= do_shortcode('[display-posts]');

    [ ]を足すと動作いたしました。ありがとうございました。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「テーマphpファイル内へのショートコード記載の件」には新たに返信することはできません。