Я работаю над коротким кодом, и я бы хотел настроить таргетинг на последнее «Событие». Ориентируясь на это последнее «событие», я бы хотел сделать две вещи.WordPress - Как настроить таргетинг на последнее сообщение и изменить его?
- Возможность применить к нему определенный класс, чтобы я мог стилизовать его по-разному (я не хочу использовать
first-child
). - Добавить
the_excerpt()
.
В настоящее время короткий код вытягивает последние 4 «События». Таким образом, самое последнее потребуется, о чем я упомянул выше. Я бы предположил, что это должно было бы что-то сделать с «счетом», но я не совсем уверен, все еще пытаясь изучить этот материал.
add_shortcode('show_events', 'events_query');
function events_query() {
$args = array(
'posts_per_page' => 4,
'category_name' => 'events',
);
$events_query = new WP_Query($args);
if ($events_query->have_posts()) :
$html_out = '<article>';
while ($events_query->have_posts()) :
$events_query->the_post();
// Do stuff with each post here
$html_out .= '<div class="events-item"><div class="meta-date">' . Date('F j, Y') . '</div><div class="meta-info"><div class="meta-title"><h4><a href="' . get_permalink() . '">' . get_the_title() . '</a></h4></div>/div></div>';
endwhile;
$html_out .= '</article>';
else : // No results
$html_out = 'No Events Found.';
endif;
wp_reset_query();
return $html_out;
}
EDIT
Обновлено с помощью кода из ответа:
add_shortcode('show_events', 'events_query');
function events_query() {
$args = array(
'posts_per_page' => 4,
'category_name' => 'events',
);
$events_query = new WP_Query($args);
if ($events_query->have_posts()) :
$html_out = '<article>';
$counter = 0;
$event_class = 'events-item';
while ($events_query->have_posts()) :
if ($counter == 0) {
$event_class = 'events-item most-recent';
}
$events_query->the_post();
// Do stuff with each post here
$html_out .= '<div class="' . $event_class . '"><div class="meta-date">' . Date('F j, Y') . '</div><div class="meta-info"><div class="meta-title"><h5><a href="' . get_permalink() . '">' . get_the_title() . '</a></h5></div></div>';
if ($counter == 0) {
$html_out .= '<div class="meta-info">' . get_the_excerpt() . '</div>';
}
$html_out .= '</div>';
$counter++;
endwhile;
$html_out .= '</article>';
else : // No results
$html_out = 'No Events Found.';
endif;
wp_reset_query();
return $html_out;
}
Ты жизнь заставка. Я чувствую, что это близко, хотя. Я получаю «неопределенную переменную» в '$ post-> post_excerpt'. Это то же самое, что 'the_excerpt()'? –
Хмм, я думаю, что отрывок из сообщения пуст. Можно ли проверить, есть ли в выписке пост в поле выдержки? Пожалуйста, обратитесь к следующему [link] (http://www.mhthemes.com/support/custom-excerpts-wordpress/). –
Станимир, я обновил свой ОП. Я заменил '$ post-> post_excerpt' на' get_the_excerpt() ', и я больше не получал никаких ошибок. Единственная проблема - все мои сообщения получают 'class =" most-recent', когда он должен быть только первым. Вот демонстрация [link] (http://www.ankitdesigns.com/demo/rawafid/). –