WP_QUERY总是得到相同的固定链接吗?

时间:2017-04-07 作者:eawedat

我在下面有这个代码,我希望显示每个帖子的每个链接,但我一直得到所有帖子的相同链接,即页面的链接。

$args = array(\'posts_per_page\' => 5,\'order\' => \'DESC\');
$rp = new WP_Query($args);
if($rp->have_posts()) :
while($rp->have_posts()) : $rp->the_post();

   the_title(); 

$link=the_permalink();
echo \'<a href="\'.$link.\'">Welcome</a>\';
echo "<br />";

endwhile;

wp_reset_postdata(); 

endif;
谢谢你。

3 个回复
最合适的回答,由SO网友:kiarashi 整理而成

别忘了使用esc_url()

echo \'<a href="\'. esc_url( $link ).\'">Welcome</a>\';
还可以尝试以下操作:get_permalink( get_the_ID() );

SO网友:Toir

$args = array(\'posts_per_page\' => 5, \'order\' => \'DESC\');
$rp   = new WP_Query($args);
if ($rp->have_posts()) :
    $i    = 0;
    $link = \'\';
    while ($rp->have_posts()) : $rp->the_post();
        the_title();
        if ($i == 0) $link = get_permalink();

        echo \'<a href="\' . $link . \'">Welcome</a>\';
        echo "<br />";
        $i++;
    endwhile;

    wp_reset_postdata();

endif;
此核心仅获取第一个帖子链接

SO网友:MagniGeeks Technologies

循环中缺少get\\u the\\u ID()。这就是为什么它为循环中的每个帖子显示第一个帖子的永久链接;

尝试此代码

$args = array(\'posts_per_page\' => 5,\'order\' => \'DESC\');
$rp = new WP_Query($args);
if($rp->have_posts()) :
while($rp->have_posts()) : $rp->the_post();

   the_title(); 

$link=get_the_permalink(get_the_ID()); //get_the_ID() gets the id of the post inside a loop
echo \'<a href="\'.$link.\'">Welcome</a>\';
echo "<br />";

endwhile;

wp_reset_postdata(); 

endif;
Note: 请检查documentation 为了更好的理解。