-1

我正在运行一个 wordpress 网站,我试图根据不同的类别回显不同的侧边栏,但我似乎无法将 php 代码放在回显标签中。该代码可以很好地在侧边栏中的不同类别页面上回显不同的内容,但我无法在 echo ' ' 中添加 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; ?>

使用上述代码时出现此错误:

解析错误:语法错误,意外的 T_STRING,期待 ',' 或 ';' 在第 6 行的 /home/ignoremu/public_html/wp-content/themes/.../sidebar.php

请帮帮我。谢谢。

4

4 回答 4

3

对你来说最好的方法是完全跳过你的 echo 中的 HTML,然后用 echo 输出结果,如下所示:

<?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; ?>
于 2013-04-02T10:53:35.047 回答
1

如果要将单引号放在带有单引号的 echo 中,则必须转义引号:

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

双引号字符串中的双引号也是如此。

编辑:哎呀,没有完全阅读。要解决您的问题更改:

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

到:

if ( is_category( '7' )) {
    echo dynamic_sidebar( 'category_fashion' );
} else {
    echo dynamic_sidebar( 'main_sidebar' );
} 
于 2013-04-02T10:54:30.720 回答
1

你已经在 php 为什么要重新启动 php 呢?下面就可以了。

echo dynamic_sidebar( 'category_fashion' );
于 2013-04-02T10:54:35.100 回答
0

如果 dynamic_sidebar() 是一个函数,为什么需要回显它,而不是在函数内部返回/回显值,所以调用它,将通过给定的参数返回值

于 2013-04-02T10:56:31.230 回答