Я бы хотел показать последние 3 статьи категории «кемпинг-кемпинг» с коротким кодом, но функция кажется недействительной, идея?
function derniers_articles_camping() { // the query $the_query = new WP_Query( array( 'category_name' => 'location-camping-var', 'posts_per_page' => 3, )); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); $contenu = '
<div class="effect-jazz">'.the_post_thumbnail();.'<div class="jazz-try"> <div class="h3"><a href="'.the_permalink();.'">'.the_title();.'</a></div> <p>'the_resume(60);.'</p> </div> </div>
'; endwhile; wp_reset_postdata(); return $contenu; endif; } add_shortcode('camping', 'derniers_articles_camping');
Заранее спасибо за вашу помощь !
Проблема заключается в переменной $contenu
.
Пытаться:
$contenu .= '<div class="effect-jazz">'.get_the_post_thumbnail().'<div class="jazz-try"> <div class="h3"><a href="'.get_permalink().'">'.get_the_title().'</a></div> <p>'.get_the_resume(60).'</p><!-- THIS FUNCTION NEEDS TO BE CREATED --> </div> </div>';
Не использовать ;
трейлеры при использовании inline php, ex <a href="'.get_permalink().'">
.
Используйте соответствующие функции возврата:
get_the_post_thumbnail()
get_permalink()
get_the_title()
return
версию функции the_resume()
Используйте правильный оператор .=
Когда вы хотите добавить к переменной, а не переписывать ее с каждой итерацией цикла.
Не перегибайте строку после $variable .= '
.
Мое решение:
ob_start(); // the query $the_query = new WP_Query( array( 'category_name' => 'location-camping-var', 'posts_per_page' => 3, )); if ( $the_query->have_posts() ){ while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <div class="col-md-4"> <div class="grid"> <div class="effect-jazz"> <?php the_post_thumbnail('child-thumb'); ?> <div class="jazz-try"> <div class="h3"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div> <p><?php the_excerpt(); ?></p> </div> </div> </div> </div> <?php endwhile; wp_reset_postdata(); $laboucle = ob_get_clean(); return $laboucle; }