我正在制作一个关于世界各国和城市的网站。每个帖子将是一个城市名称,并将有一个国家类别。
在这篇文章的开头,我想对这个国家做一个简要的描述,而不是对20多个城市做同样的描述。
wordpress是否可能会看到类别为“欧洲>德国”,并在帖子中输入简短描述,我会在一个名为“德国”的页面中这样做?
<小时>edit: 我发现了一段可以在帖子中添加页面的代码http://css-tricks.com/snippets/wordpress/embed-a-page-inside-a-page/
我仍然需要一种方法,这样做的网页将被添加,只有当职位是在某些类别
<小时>edit2: 我已经做了我想做的。虽然有一半是手动操作,但它可以工作。
解决方案:
这是单曲。php
<?php get_template_part( \'countries\' ); ?>
我创建了国家。php在索引中,并在其中放置代码:
<?php
if(in_category(\'category-2\')) {
$recent = new WP_Query("page_id=15"); while($recent->have_posts()) : $recent->the_post();?>
<h3><?php the_title(); ?></h3>
<?php the_content(); ?>
<?php endwhile;
} else {
echo "Error";
}
?>
尽管如此,我必须手动添加每个国家/地区,这是我能找到的最佳解决方案。
最合适的回答,由SO网友:Stephen Harris 整理而成
是的,在循环内部(例如在single.php中),您可以使用get_the_terms
检索与该帖子关联的术语数组(本例中为国家)。这将始终是一个数组(如果出现错误,则为false/error),即使只有一个国家与之关联。
然后,您可以使用国家分类术语并输出其描述term_description
.
$taxonomy = \'my-country-tax\'; Your taxonomy slug
//Should be an array of 1 in this case
$countries = get_the_terms( $post->ID, $taxonomy);
//Check there are countries asccoiated with post
if($countries && !is_wp_error($countries)){
$country = array_pop($countries);
$description= term_description( $country->term_id, $taxonomy );
echo $description;
}
SO网友:Tom J Nowell
另一种选择是,您可以拉入该类别的描述,并使用该描述而不是页面作为您的摘要?
要做到这一点,您需要严格划分类别,例如,如果一个城市跨越两个国家的边界,您需要选择一个,并且只选择一个,或者如果您使用像英国这样的城市,例如爱丁堡,您需要选择苏格兰或英国,但不能同时选择两者。
因此,首先,拉入类别术语,然后检查父项不是0/-1的术语,或者在您选择的大陆列表中的术语(也许自定义“位置”分类法比类别更合适)。
找到这样一个术语后,抓住它的slug,然后使用gn WP\\u查询搜索具有相同slug的页面,并显示其摘录。