Wordpress comments.php如果变量为true,则更改php输出

时间:2012-03-28 18:00:23

标签: php wordpress if-statement comments

我到处搜索,无法找到解决方法:

我正在开发一个Wordpress主题,我正在创建comments.php文件。到目前为止,这是我的代码:

在我的single.php页面上,我位于顶部<?php $mobile_blog = 'true'; ?> 然后在我的comments.php文件中,我有:

// begin if statement
<?php if($mobile_blog == 'true') : ?>

// If $mobile_blog variable is set to true on the page, show this code.

<div id="comments" class="blog-comments">
  <?php if($comments) : ?>
  <ol class="comments blog-comments" style="list-style:none;">
    <?php wp_list_comments('type=comment&callback=company_mobile_comments'); ?>
  </ol>
  <?php else : ?>
  <p>No comments yet</p>
  <?php endif; ?>
</div>

<?php else : ?>

// If $mobile_blog variable is NOT set to true on the page, show this code.

<div id="comments" class="blog-comments"><span class="t">
  <?php comments_number( 'No Comments', '1 Comment so far', '% Comments' ); ?>
  </span>
  <?php if($comments) : ?>
  <ol class="comments">
    <?php wp_list_comments('type=comment&callback=company_comments'); ?>
  </ol>
  <?php else : ?>
  <p>No comments yet</p>
  <?php endif; ?>
</div>

//end of if statement

<?php endif; ?>

我想在这里实现的是,如果页面将$mobile_blog变量设置为true,则显示代码的顶部,否则如果未设置变量或者不等于true,显示代码的底部。

出于某种原因,当我使用此处包含的代码时,即使变量设置为true,它也只显示代码的底部。无论我做什么,我似乎无法在需要时以任何方式显示正确的代码。

编辑:: 相反,有没有办法让模板拉取不同的comments.php文件,具体取决于变量是否设置为true?我使用<?php comments_template( '', true ); ?>

在我的single.php页面中添加了评论

4 个答案:

答案 0 :(得分:0)

更改为

 if($mobile_blog === true):

答案 1 :(得分:0)

试试这个

<?php if($mobile_blog === true) : ?>

编辑 - 如果它不是布尔值可能会被覆盖。试试

$mobile_blog = 'true';
// begin if statement
<?php if($mobile_blog == 'true') : ?>

答案 2 :(得分:0)

确保 $ mobile_blog 是布尔值。如果您不确定可以尝试此代码

if (settype($mobile_blog, bool)) {
  /* true */
}

请注意。当mobile_blog是一个字符串时,这不起作用。然后mobile_blog始终为真。

答案 3 :(得分:0)

我实际上找到了一种方法来选择要显示的模板移动版本的评论模板。下面的代码允许您选择要使用的comments.php文件:)

<?php // show mobile comments 
comments_template( '/mobile-comments.php', true ); ?>