我有从特定标记
生成随机帖子的代码global $post;
$postid = $post->ID;
$args = array(
'orderby' => 'rand',
'showposts' => 10,
'tag' => 'ABC',
'post__not_in' => array($postid)
);
query_posts($args);
echo '<ul>';
while (have_posts()) : the_post();
echo '<li><a href="'.get_permalink().'" title="'.the_title('','',false).'">'.the_title('','',false).'</a></li>';
endwhile;
echo '</ul>';
这里标签是'ABC',但是当我将ABC存储在一个变量中时,
$tagABC = 'ABC';
然后在这里调用变量
global $post;
$postid = $post->ID;
$args = array(
'orderby' => 'rand',
'showposts' => 10,
'tag' => $tagABC,
'post__not_in' => array($postid)
);
query_posts($args);
echo '<ul>';
while (have_posts()) : the_post();
echo '<li><a href="'.get_permalink().'" title="'.the_title('','',false).'">'.the_title('','',false).'</a></li>';
endwhile;
echo '</ul>';
这种方法不起作用,有人可以解释为什么会这样吗?
答案 0 :(得分:1)
您确定使用相同的变量名称吗?请注意,以下内容按预期工作:
$tagABC = 'ABC';
$args = array(
'orderby' => 'rand',
'showposts' => 10,
'tag' => 'ABC',
'post__not_in' => array(3)
);
$args2 = array(
'orderby' => 'rand',
'showposts' => 10,
'tag' => $tagABC,
'post__not_in' => array(3)
);
var_dump($args2);
var_dump($args);
给出以下输出:
array(4) {
["orderby"]=>
string(4) "rand"
["showposts"]=>
int(10)
["tag"]=>
string(3) "ABC"
["post__not_in"]=>
array(1) {
[0]=>
int(3)
}
}
array(4) {
["orderby"]=>
string(4) "rand"
["showposts"]=>
int(10)
["tag"]=>
string(3) "ABC"
["post__not_in"]=>
array(1) {
[0]=>
int(3)
}
}
如您所见,数组$args
和$args2
具有相同的值,这意味着如果使用变量或字符串,传递给函数的数组将完全相同