wordpress主题开发中,我们在写文章列表调用的时候,需要设置自定义字段,这里使用的是yoast SEO元描述来作为自定义字段,前端需要调用这个字段。
要获取Yoast SEO插件设置的元描述并在你的WordPress主题中显示,你需要使用get_post_meta
函数来获取名为_yoast_wpseo_metadesc
的自定义字段。这个字段存储了Yoast SEO为每篇文章或页面设置的元描述。
下面是修改后的PHP代码片段,它将从Yoast SEO插件获取元描述并在HTML结构中输出:
<div class="list2">
<?php
$args = array(
'category__in' => array(16), // 指定分类ID
'post_status' => 'publish', // 只选择已发布的文章
'posts_per_page' => -1, // 获取所有符合条件的文章
);
$posts = get_posts($args);
if ($posts) {
foreach ($posts as $post) {
setup_postdata($post);
// 获取文章的特色图像URL
$img_url = get_the_post_thumbnail_url($post->ID, 'full');
// 文章标题
$title = get_the_title($post->ID);
// 获取Yoast SEO设置的元描述
$yoast_meta_description = get_post_meta($post->ID, '_yoast_wpseo_metadesc', true);
// 输出HTML结构
echo '<div class="listItem">';
echo '<img src="' . esc_url($img_url) . '" alt="">'; // 如果没有特色图像,则使用默认图像
echo '<div class="listItemBottom">';
echo '<p>' . esc_html($title) . '</p>';
echo '<p>' . esc_html($yoast_meta_description) . '</p>';
echo '</div>';
echo '</div>';
}
wp_reset_postdata();
}
?>
</div>
在这段代码中,$yoast_meta_description
变量用于存储从Yoast SEO插件获取的元描述。如果Yoast SEO没有为某篇文章设置元描述,get_post_meta
函数将返回空字符串,你可能需要添加一些条件判断来处理这种情况,例如提供一个默认的描述。
请确保你的WordPress主题或子主题的functions.php
文件中没有禁用或过滤掉Yoast SEO的元描述字段。如果你发现获取不到元描述,可能需要检查是否有其他插件或代码干扰了这个字段的输出。
输出效果