0

我有这行代码:<?php global $bp; query_posts( 'author=$bp->displayed_user->id' ); if (have_posts()) : ?>但它没有按预期工作。可能是因为它没有正确抓住$bp->displayed_user->id零件。我该怎么做?

谢谢

4

3 回答 3

3
<?php global $bp; query_posts( 'author=' . $bp->displayed_user->id ); if (have_posts()) : ?>

在单引号字符串中,变量不会被扩展。请参阅此处的文档:http: //php.net/manual/en/language.types.string.php

于 2011-02-05T14:29:46.660 回答
1

使用单引号使 PHP 不获取变量值。您可以使用双引号,而不是使用单引号:

<?php 
    global $bp; 
    query_posts( "author={$bp->displayed_user->id}" ); if (have_posts()) : 
?>

或者这样(我认为这样更好):

<?php 
    global $bp; 
    query_posts( 'author=' . $bp->displayed_user->id ); if (have_posts()) :  
?>
于 2011-02-05T14:30:53.883 回答
1

它不起作用,因为它将'author=$bp->displayed_user->id'视为字符串而不是内联变量的内容。(这是使用单引号和双引号的主要区别。请阅读 PHP字符串手册页以获取更多信息。)

要解决此问题,请尝试:

query_posts('author=' . $bp->displayed_user->id);

或者

query_posts("author={$bp->displayed_user->id}");

也就是说,我个人推荐第一种方法,因为它更明确地发生了什么。

于 2011-02-05T14:31:07.660 回答