wordpress — конкатенация PHP / WP — строка заканчивается двумя частями

$args = array( 'post_type' => 'object', 'posts_per_page' => 10 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
echo "<div class=\"item\"><a href=\"" . the_permalink() . "\">" . the_title() . "</a></div>";
endwhile;

Этот цикл у меня в WP не повторяется

<div class="item"><a href="#mylink">The name of my link</a></div>

но вместо этого

#mylink The Name of my link
<div class="item"><a href=""></a></div>

Я что-то упускаю тривиально?

-1

Решение

Я бы сделал это так (код ниже), который покажет что-то, только если:

  • Есть хотя бы один опубликованный сообщение типа object
new WP_Query( array(
'post_type' => 'object',
'posts_per_page' => 10,
) );

while ( have_posts() ) :
the_post();
printf(
'<div class="item"><a href="%s">%s</a></div>'
, get_permalink()
, get_the_title()
);
endwhile;

wp_reset_query();

Заметки:

  • Я не храню объект WP_Query, так как он не будет использоваться
  • я использую printf() для лучшей читаемости
  • Я не забываю добавить wp_reset_query(); что необходимо в большинстве случаев
0

Другие решения

Попробуйте повторить это

   echo '<div class="item"><a href="'.$mylink.'">'.$myTitle.'</a></div>';
0