我到处搜索,无法找到解决方法:
我正在开发一个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 ); ?>
答案 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 ); ?>