1. ホーム
  2. wordpress

[解決済み] Wordpressの条件文if is_page()の使い方

2022-02-12 14:58:36

質問

ワードプレスで作ったページに、それぞれ違う写真を載せたいのですが、どうすればいいですか?

そこで、index.phpファイル、archive.phpファイル、page.phpファイルなどに以下のように記述しています。

<img src="<?php bloginfo('template_url'); ?>/images/<?php echo $toppic; ?>" alt="page1" id="mainPageImg" />

さて、私のpage.phpファイルでは、次のようになっています。

<?php
    // TOP PICTURE DEFINITIONS
    if ( is_home() ) {
        $toppic == 'page1.png';
    }
    if ( is_page('articles') ) {
        $toppic == 'page2.png';
    }
?>

どうしてうまくいかないのでしょうか?イコール(=)記号を一つにして試してみたのですが...。

EDIT: トップに$toppicを定義すると、例えばindex.phpファイルでは以下のようになります。

<?php $toppic = 'page1.png'; ?>

すると、うまくいくのです。したがって、条件付き if is_page/is_home ステートメントに関係する何かである必要があります。何か思い当たることはありませんか?

ありがとうございます。 アミット

どのように解決するのですか?

よし、答えが見つかったぞ。

このようなことが必要です。記事(ブログ)ページでは、トップセクションに以下のように配置する必要があります。

<?php // TOP PICTURE DEFINITION FOR ARTICLES PAGE
        if ( is_home() ) {
            $toppic = 'page1.png';
        }
?>

そして、page.phpファイルで、他のすべてのページのトップの画像を制御することができます(404を除く、404.phpにis_404()を置く必要がある。というわけで、こんな感じです。

<?php
    // TOP PICTURE DEFINITIONS
    if ( is_page('english') ) {
        $toppic = 'page1.png';
    }
    if ( is_page('aboutus') ) {
        $toppic = 'page1.png';
    }
    if ( is_page('newspaper') ) {
        $toppic = 'page1.png';
    }
    else {
        $toppic = 'page1.png';
    }
?>

そして最後に、これを実装するために、以下のようなHTML/phpの構文を使用します。

<img src="<?php bloginfo('template_url'); ?>/images/<?php echo $toppic ?>" alt="page1" id="mainPageImg" />

以上です。ふぅ。やっと動くようになったよ :) クライアントのためにもやらなければならなかったんだ!