2013-04-02 21 views
-1

나는 워드 프레스 웹 사이트를 운영하고 있는데 다른 카테고리에 따라 다른 사이드 바를 반향하려고하는데 반향 태그 안에 PHP 코드를 넣을 수 없습니다. 이 코드는 다른 카테고리 페이지의 다른 내용을 사이드 바에서 에코하기 위해 잘 작동하지만 오류를 반환하는 것처럼 echo 코드 안에 PHP 코드를 추가 할 수 없습니다. 이건 내 코드입니다 :PHP 내부 에코 태그

<?php if (is_active_sidebar("main_sidebar")) : ?> 

    <div id="main_sidebar" class="widget-area"> 
       <?php 
       if (is_category('7')) { 
       echo 'Sidebar to be echo'd on category page with ID=7'; 
       } 
       else 
       { 
       echo 'Sidebar to be echo'd on all the other category pages'; 
       } 
       ?> 
    </div><!-- #first_sidebar .widget-area --> 

<?php endif; ?> 

이 내가 그것을 작동하는 방법입니다 :

<?php if (is_active_sidebar("main_sidebar")) : ?> 

    <div id="main_sidebar" class="widget-area"> 
       <?php 
       if (is_category('7')) { 
       echo '<?php dynamic_sidebar('category_fashion'); ?>'; 
       } 
       else 
       { 
       echo '<?php dynamic_sidebar('main_sidebar'); ?>'; 
       } 
       ?> 
    </div><!-- #first_sidebar .widget-area --> 

<?php endif; ?> 

위의 코드를 사용할 때이 오류가 점점 오전 :

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/ignoremu/public_html/wp-content/themes/.../sidebar.php on line 6

이 좀 도와주세요 아웃. 감사.

+0

을 값을 반환하는 함수, 왜 당신이 그것을 에코해야합니까, 대신 그것을 호출 그래서, 함수 내에서 값을 echoeing/반환을 경우 echo 'ID = 7'인 카테고리 페이지에서 사이드 바를 echo했습니다. '; echo (') on echo'd echo ("")와 같은 전체 에코 문자열을 넣으려고합니다. "ID = 7 인 카테고리 페이지에서 사이드 바를 echo'd"; – harry

답변

3

당신을 위해 가장 좋은 방법은 같은 에코와 결과를 완전히 에코에 HTML을 건너 뛰고 출력하는 것입니다

<?php if (is_active_sidebar("main_sidebar")) : ?> 

    <div id="main_sidebar" class="widget-area"> 
       <?php 
       if (is_category('7')) { 
       echo dynamic_sidebar('category_fashion'); 
       } 
       else 
       { 
       echo dynamic_sidebar('main_sidebar'); 
       } 
       ?> 
    </div><!-- #first_sidebar .widget-area --> 

<?php endif; ?> 
+0

답장을 보내 주셔서 감사합니다. 지금은 매력처럼 작동하지만 조금 문제가 있습니다. 사이드 바 위젯 영역 아래에 나타나는이 숫자 '1'이 있습니다. 여기에서 확인할 수 있습니다 : http://ignoremusic.com/category/modelcitizens/. 조건 태그를 사용하여 사이드 바를 반향 출력 할 때만 나타납니다. 그렇지 않으면 모든 페이지의 세로 막대가 동일 할 때 '1'숫자가 표시되지 않습니다. –

+0

@FahadHasan은 1이 안됩니다. 그것은 아마도 category_fashion과 너무 많은 코드로 인해 발생했을 것입니다. – Luceos

1

당신이 따옴표와 에코 내부에 작은 따옴표를 넣어하려는 경우 따옴표를 이스케이프 처리해야합니다.

//      Escaped here 
echo 'Sidebar to be echo\'d on category page with ID=7'; 

큰 따옴표로 묶은 문자열에는 큰 따옴표가 들어갑니다.

EDIT : 완전히 읽지 않았습니다. 왜 다시 PHP를 시작하는 데 이미 PHP에서

if (is_category('7')) { 
    echo dynamic_sidebar('category_fashion'); 
} else { 
    echo dynamic_sidebar('main_sidebar'); 
} 
1

당신 :

if (is_category('7')) { 
    echo '<?php dynamic_sidebar('category_fashion'); ?>'; 
} else { 
    echo '<?php dynamic_sidebar('main_sidebar'); ?>'; 
} 

사람 : 문제의 변화를 해결하려면? 바로 아래에서 작동합니다.

echo dynamic_sidebar('category_fashion'); 
+0

답장을 보내 주셔서 감사합니다. 안타깝게도 지금 내 평판은 여전히 ​​15 점 미만이지만 도움을 주셔서 감사합니다. –

+0

@FahadHasan - 도와 줘서 다행 :) – Rikesh

0

dynamic_sidebar()이 라인에 주어진 PARAM에 의해