0

私はWordpressの最新バージョンを使用しており、header.php内のこのコードを使用しています:

<?php
    $url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    $slugMenu = array (
        'planes',
        'two-wings',
        'four-wings'
    );
    if (in_array($url, $slugMenu)) {
     echo "
        <style>
            .planes,
            .two-wings,
            .four-wings { background:#101010; }
        </style>
        ";
    }
    else {
        echo _("not found");
    }
?>

コード出力は次のようになります。

  • URL に宣言された配列のいずれかの要素が含まれているかどうかを確認します
  • 存在する場合は、プロパティと値内でエコーします

うーん、なぜかうまくいかない。私が得るのは、実際<style><head>.

問題は、同じWordpressに基づいた私の別のプロジェクトに取り組んでいたことです。ここで何か間違ったことをしていますか?

4

1 に答える 1

1

配列要素の1つにリクエストURI全体が含まれているかどうかを確認していますが、どの要素も含まれていません。

詳細:

これは true を返します。

if (in_array("planes", $slugMenu))

これは false を返します。

if (in_array("http://planes.com/planes", $slugMenu))

解決策はさまざまな要因によって異なりますが、その 1 つとして次のようなものがあります。

<?php
    $uri = $_SERVER[REQUEST_URI];
    $slugMenu = array (
        '/planes',
        '/two-wings',
        '/four-wings'
    );
    if(in_array($uri, $slugMenu)) 
    {
        echo "
        <style>
            .planes,
            .two-wings,
            .four-wings { background:#101010; }
        </style>
        ";
    }
    else 
    {
        echo _("not found");
    }
?>
于 2013-07-13T11:23:50.293 に答える