サポート » プラグイン » プラグインのショートコードをサイドバーで表示させたい

  • 解決済 giabit333

    (@giabit333)


    こんにちは、いつもお世話になっています。

    WP Wunderground というお天気プラグインの質問です。

    このプラグインは [forecast] というショートコードを用いて
    記事やサイドバーにお天気情報を表示する仕様になっています。

    記事本文へのコードの記述では問題なく情報が表示されますが
    サイドバー(現在使用しているテーマの sidebar.php)に
    直接コードを記述しても出力がされません。
    forecast の文字列がそのまま反映されてしまいます。

    テキストウィジェットにてコードを記述するとちゃんと出力されますが
    テーマデフォルトのサイドバーが表示されなくなってしまうので、
    今回に限らずウィジェットは極力使用したくはありません。

    ウィジェットでは反映されるのであればテキストウィジェットを使わずに
    テーマのsidber.phpに対してコードを直書きでも何か別のものを付与、
    記述すれば反映されないかな? と思いまして質問をさせていただいた
    次第です。

    知識乏しく、半ば 感だけで調べてはみましたものの行き詰りです。
    何か解決の方法がございましたらお教えいただきたく思います。
    私はphpの関数の理解ができるほどでなく、いつもこのフォーラムを
    拝見しながら見よう見まねで設定やトラブル解決を行うレベルです。

    どうぞよろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • <?php echo build_forecast(); ?>
    で表示されるかな?

    問題の原因そのものは、直接書いてしまうとショートコードをパースする処理が通らないので、ショートコードと判別されないために起こります。

    つまり、サイドバーの中、テキストウィジェットに書き込むと、そのウィジェットをパースする際にショートコードも一緒にパースされるので、正しく表示されますが、直接書いてしまうとショートコードのパース処理を通らないので、プレーンなテキストとして見られてしまうためです。

    これを回避するには、単に [forecast] と書くのではなく、
    <?php
    do_shortcode( '[forecast]' );
    ?>

    とか書けば動くと思います(すいません、検証していません)。

    失礼、echoしないとだめですね。

    <?php echo( do_shortcode( '[forecast]' ) ); ?>

    トピック投稿者 giabit333

    (@giabit333)

    V.J.Catkickさん、kvexさん、はじめまして。

    ご回答ありがとうございました。
    お二方の提示していただいた記述を試してみましたところ、
    V.J.Catkickさんの <?php echo( do_shortcode( '[forecast]' ) ); ?>
    で、情報表示がされました。

    知識不足とはいえ一晩がかりで解決の糸口を探せない自分が恥ずかしいです。
    いつも勉強させていただいてます。
    これを元に自力でもう少し高い段階のことができるように頑張ります。

    ショートコードのパース処理を通らないので、プレーンなテキストとして見られてしまう

    とか echo とか自分でももう一度調べてみます。

    kvexさん、V.J.Catkickさん、ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「プラグインのショートコードをサイドバーで表示させたい」には新たに返信することはできません。