Как получить заголовок, анонс, миниатюру и постоянную ссылку произвольного типа записи по ID?
Мне нужно сгенерировать несколько "циклов" для получения заголовка, анонса, миниатюры и постоянной ссылки произвольного типа записи 'charity' по ID поста, потому что у меня будет несколько записей (благотворительных организаций), которые мне нужно связать с определенным классом (абсолютно позиционированные указатели на карте).
Можете помочь исправить мой код, чтобы он работал? Вот что у меня есть (не работает):
<span id="chty_17">
<?php
$args = array('post_type'=> 'charity','post__in' => array(36));
$custom_query = get_posts($args);
foreach ($custom_query as $post) :
setup_postdata($post); ?>
<dt><?php the_title; ?></dt>
<dd>
<?php echo get_the_post_thumbnail(); ?>
<h2><?php the_title; ?></h2>
<p><?php the_excerpt; ?></p>
<p><a class="more" href="<?php echo get_post_permalink();?>">Find out more »</a></p></dd>
<?php endforeach;
wp_reset_postdata();?>
</span>
Этот код отображает только миниатюру и постоянную ссылку правильно.
Я пробовал другие варианты, как показано ниже, но мне нужно получить сгенерированный анонс записи, а не её содержимое:
<?php $post_17 = get_post(17); ?>
<dt><?php echo $post_17->post_title; ?></dt>
<dd>
<?php echo get_the_post_thumbnail('17'); ?>
<h2><?php echo $post_17->post_title; ?></h2>
<p><?php echo $post_17->post_content; ?></p>
<p><a class="more" href="<?php echo get_post_permalink('17');?>">Find out more »</a></p></dd>
Как этого добиться? Спасибо!!

Вы почти у цели. Есть несколько вещей, которые можно сделать иначе, чтобы получить лучший результат и одновременно извлечь анонс записи.
Мы будем использовать setup_postdata
, чтобы иметь возможность использовать такие функции как the_title()
и the_excerpt()
. После завершения извлечения и отображения этого контента всегда нужно вернуться к исходному состоянию, поэтому вызываем wp_reset_postdata()
, чтобы вернуться к предыдущему контенту.
<?php
$post_17 = get_post(17);
if ( $post_17 ):
setup_postdata($post_17);
?>
<span id="chty_17">
<dt><?php the_title(); ?></dt>
<dd>
<?php the_post_thumbnail(); ?>
<h2><?php the_title(); ?></h2>
<?php the_excerpt(); ?>
<p><a class="more" href="<?php the_permalink();?>">Узнать больше »</a></p>
</dd>
</span>
<?php
wp_reset_postdata();
endif;
?>
Важно отметить, что the_excerpt()
добавляет ссылку "more" в конец анонса. Использование приведенного выше кода приведет к выводу двух ссылок "more". Вы можете изменить содержимое этой ссылки с помощью фильтра get_the_excerpt.
