web-dev-qa-db-ja.com

WP_Queryと同じパーマリンクを入手し続けますか?

私はこのコードを以下に持っています、そして、私は各記事のそれぞれのリンクを見せたいです、しかし、私はページのリンクであるすべての記事に同じリンクを得続けます。

$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;

ありがとうございました。

2
eawedat

esc_url()を使うことを忘れないでください

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

またこれを試してみてください:get_permalink( get_the_ID() );

2
kiarashi
$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;

このコアは最初の投稿リンクのみを取得します

1
Toir427

ループ内にget_the_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;

注:理解を深めるために ドキュメント を確認してください。