【问题标题】:php inside echo tags [closed]回声标签内的php [关闭]
【发布时间】:2013-04-02 10:52:47
【问题描述】:

我正在运行一个 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,需要 ',' 或 ';' 在 /home/ignoremu/public_html/wp-content/themes/.../sidebar.php 在第 6 行

请帮帮我。谢谢。

【问题讨论】:

  • 在这一行 echo 'Sidebar to be echo'd on category page with ID=7'; echo 上有一个 (') 会尝试将整个 echo 字符串放在 ("") 中,例如 echo "Sidebar to be echo'd on category page with ID=7";

标签: php wordpress echo categories sidebar


【解决方案1】:

对您而言,最好的方法是完全跳过 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; ?>

【讨论】:

  • 感谢您的回复,现在它的工作就像一个魅力,但有一个小问题。侧边栏小部件区域下方出现了这个数字“1”,您可以在这里查看:ignoremusic.com/category/modelcitizens。它仅在我使用条件标签回显侧边栏时出现,否则当所有页面上的侧边栏相同时,不会出现数字“1”。
  • @FahadHasan 1 不应出现。这可能是由 category_fashion 和显示的代码引起的。
【解决方案2】:

如果你想将单引号放在带有单引号的 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' );
} 

【讨论】:

    【解决方案3】:

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

    echo dynamic_sidebar( 'category_fashion' );
    

    【讨论】:

    • 感谢您的回答,很遗憾我现在无法投票,因为我的声誉仍低于 15 分,但感谢您的帮助。
    • @FahadHasan - 很高兴帮助你:)
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      相关资源
      最近更新 更多