【WordPress】投稿や固定ページでショートコードとPHPを併用するとうまく表示されないときの対処

公開日:2016年3月6日 使い方など
Knowledge Base トラブル 対処

【この記事の目次】- 必要な部分だけ見たいときにどうぞ - [表示する]

WordPressで記事や固定ページを作っていて、1つの記事にPHPのコードを書いて動作させる部分とショートコードで動作させる部分を混在させるとPHPで書いた部分はきちんと動作するのにショートコードは動作せずショートコードのまま表示されることありませんか?

PHPを記事や固定ページの中で動作させるには「EXEC PHP」などのプラグインを使う必要があるのですが、こうしたコード変換プラグインとショートコードの競合などからこうした状況が生まれることがあるようです。

ショートコードがそのまま表示されてしまうケース

詳しく書いてある文献を探しましたが残念ながら公式フォーラムにもありませんでした。今まで公開したコンテンツに1つショートコード追加したら表示されなくなった・・・といったケースが私の経験でもあります。主な発生原因としては次のようなことが考えられます。

  1. WordPressのバージョンによって発生する
  2. 使用しているテーマによって発生する
  3. 1つのコンテンツの中で実行できるショートコードやPHP関数の数に制限がある
  4. 挿入したPHP関数の1つまたは複数で不具合(コードの間違いなど)がある

4の場合にはきちんと対応しないとページ自体の表示に関わりますから修正すべきなのですが、思い当たる節がないときには以下のように対処するとほとんどの場合は上手く動作します。

「AMP(Accelerated Mobile Pages)」についての勉強メモ

【WordPress】カスタム投稿タイプごとにコメント欄を切り替える変える方法

【WordPress】危険な設定不要!プラグインを使って画像の直リンクを防ぐ方法


ショートコードのPHPプログラム化

この方法はショートコードをテーマの中で使う方法として知られていますが、ショートコードをPHPプログラムとして認識させて動作させることで不具合が解消されます。
動作させるには

<?php echo do_shortcode(“ここにショートコードを入れる”); ?>
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「’」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします

というコードでショートコードを挟んで(入れ子にして)使います。「ここにショートコードを入れる」の場所にショートコードをそのまま置き換えるだけです。

こうした不具合の原因自体が分かっているわけではないですし、いろいろなテーマやいろいろなプラグインで試したわけでもないので根本解決ではないのかもしれませんが、動くことが大事なので、エラーが出たときにはこの方法で対処しています。

ひまあーと(管理人)
  • 記事の作者: ひまあーと(管理人)

  • ☆最後までお読みいただきありがとうございました。記事作者のひまあーとです。
    ☆Wordpressでサイトをカスタマイズしていく上で有用な情報を配信しつつ、「ココナラ」でサイトカスタマイズのお手伝い、不具合の修復、サイト引っ越し代行などをさせていただいております。
    ☆Wordpressネタが多いですが、趣味の「園芸」「卓球」などの情報や日々の出来事などもどんどん増やしていきますのでよろしくお願いいたします。


いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】


記事の拡散にご協力をお願いします

閲覧いただきありがとうございました。役に立つ情報でしたら是非SNSでシェアをお願いします

関連情報