2013-07-13 4 views
0

에서 작동하지 (와 in_array()) :만약 내가 워드 프레스 최신 버전 나는 내 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를 기반으로하는 다른 프로젝트에서 작업하고 있다는 것입니다. 내가 여기서 뭔가 잘못하고있는거야?

  • 답변

    1

    배열 요소 중 하나에 전체 요청 URI가 포함되어 있고 요소가 하나도 없는지 확인하고 있습니다.

    세부 사항 :

    이 사실 반환이 false를 반환

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

    :

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

    이 솔루션은 다양한 요인에 따라 달라집니다 그러나 사람은 다음과 같습니다

    <?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"); 
        } 
    ?> 
    
    +0

    그러면 배열에서 어떻게 확인할 수 있습니까? f URL에 그 중 하나가 들어 있습니까? –

    +0

    PHP'strstr()'-> http://php.net/manual/en/function.strstr.php를 사용할 수 있습니다. – Steven