将标记存储在变量PHP中

时间:2012-01-25 15:59:36

标签: php function random tags

我有从特定标记

生成随机帖子的代码
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>';

这种方法不起作用,有人可以解释为什么会这样吗?

1 个答案:

答案 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具有相同的值,这意味着如果使用变量或字符串,传递给函数的数组将完全相同