是否可以根据帖子的类别在帖子中插入页面

时间:2012-03-02 作者:Tomas

我正在制作一个关于世界各国和城市的网站。每个帖子将是一个城市名称,并将有一个国家类别。

在这篇文章的开头,我想对这个国家做一个简要的描述,而不是对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";
}
?>
尽管如此,我必须手动添加每个国家/地区,这是我能找到的最佳解决方案。

2 个回复
最合适的回答,由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的页面,并显示其摘录。

结束

相关推荐

WordPress主题AJAX Have_Posts()

我的目标是通过ajax将blogroll加载到我的主题中。但作为响应,我只能得到0(如果省略die()行,否则会得到一个空白响应)。这是我的代码:js ajax:$.ajax({ url:\"http://domain.com/wp-admin/admin-ajax.php\", type:\'POST\', data:\'action=load_men_blog\', //dataType:\'html\', //cache