it-swarm.com.de

Immer den gleichen Permalink mit WP_Query erhalten?

Ich habe diesen Code unten und möchte jeden Link von jedem Beitrag zeigen, aber ich erhalte immer den gleichen Link zu allen Beiträgen, der der Link der Seite ist.

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

Vielen Dank.

1
eawedat

Vergiss nicht esc_url() zu benutzen

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

Versuchen Sie auch Folgendes: get_permalink( get_the_ID() );

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

dieser Kern bekommt nur den ersten Postlink

1
T. Toir427

Sie vermissen get_the_ID () in der Schleife. Das ist der Grund, warum der Permalink des ersten Posts für jeden Post in der Schleife angezeigt wird.

Versuchen Sie diesen Code

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

Hinweis: Bitte überprüfen Sie die Dokumentation zum besseren Verständnis.