サポート » 使い方全般 » 固定ページでis_page( 'スラッグ'' )の条件分岐が対応しない

  • お世話になります。
    オリジナルのテーマでheader.php内でis_page();で固定ページのスラッグによる条件分岐を行いたいのですが、動作しません。

    例)contactという固定ページのスラッグ

    <?php if ( is_page( 'contact' ) ) :
    echo 'test';
    endif; ?>

    しかし、下記のように固定ページのIDで条件分岐を行なうと正しく動作します。
    (ページスラッグcontactのIDが70と仮定)

    <?php if ( is_page( 70 ) ) :
    echo 'test';
    endif; ?>

    今までに別のテーマでは固定ページのスラッグによる条件分岐が行えていたのですが、現在のテーマではそれが使えません。

    初心者質問で恐縮ですが、何方かお教えいただけると幸いです。

    宜しくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック投稿者 jmzkw

    (@jmzkw)

    度々失礼します。

    下記でページスラッグを取得した所、固定ページのタイトルである「問い合わせ」が出力されました。
    <?php get_page($page_id)->post_name; ?>

    一旦、固定ページのスラッグがcontactとなっている固定ページを完全に削除し、新規でページを作成しました。
    その際に、固定ページのタイトルをスラッグにしたい名前「contact」にしてから公開し、公開後にページのタイトルを「問い合わせ」に修正した所、正しく動作しましたが、何故このような原因が起こるのかが分かりません。

    パーマリンクは下記の書式で設定しています。
    /%category%/%post_id%/

    また、影響のありそうなプラグインは下記を有効化しています。
    Custom Permalinks

    今後も同様の現象が起きないために、何方か原因をお教えいただけると幸いです。

    宜しくお願いいたします。

    モデレーター Okamoto Hidetaka

    (@hideokamoto)

    一旦実現したいことができた様子で何よりです。

    スラッグがcontact以外のものになっていたとかでしょうか。
    <?php var_dump( get_page( $page_id ) ); ?>
    とすれば固定ページの情報が一通り出るようになりますので、
    次に現象が発生した場合はこちらで確認してみると良いかもしれません。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「固定ページでis_page( 'スラッグ'' )の条件分岐が対応しない」には新たに返信することはできません。