自定义字段内的值,用于确定要显示的类别帖子

时间:2014-08-21 00:41:03

标签: php arrays wordpress metadata custom-post-type

我在尝试显示前端某些类别的帖子时遇到了一些问题。我创建了一个自定义字段,其关键字是' related_categories'我有不同的类别,例如“军队”,“海军”,“空军”和“空军”等。等。

创建新的自定义帖子时,我会在' related_categories'内输入不同类别的slu ..自定义字段,例如' navy' airforce',这是我在模板文件中用来回显“tax_query”中的自定义字段值的代码。阵列。

<?php global $post;

$related = array ( get_post_meta($post->ID, 'related_categories', true) );

$the_query = new WP_Query( array( 'post_type' => 'medals', 'posts_per_page' => 3, 'tax_query' => array( array( 'taxonomy' => 'medal-categories', 'field' => 'slug', 'terms' => $related, ), ), ) ); 

while ( $the_query->have_posts() ) : $the_query->the_post(); 

//loop starts after this

现在我面临的问题是,如果我只输入一个slug in&#39; related_categories&#39;自定义字段,例如&#39;海军&#39;然后来自海军的帖子&#39;类别成功显示,但如果我在&#39; related_categories&#39;内输入多个slug。自定义字段,例如&#39;海军&#39;军队&#39;然后这些帖子没有出现。

我尝试在互联网上搜索解决方案,但无法找到任何解决方案,因此我们将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:1)

请使用此插件。我希望你们所有人的问题都能解决:https://wordpress.org/plugins/advanced-custom-fields/

在此您可以轻松指定哪些字段需要显示在哪个类别和页面中。

答案 1 :(得分:0)

终于找到了解决方案!而不是使用:

$related = array ( get_post_meta($post->ID, 'related_categories', true) );

我被建议使用:

$related = explode(',', trim( get_post_meta($post->ID, 'related_categories', true) ) );

以及以下格式在自定义字段中添加类别slugs:

navy, army, air-force..

这是最终代码的样子:

<?php global $post;

$related = explode(',', trim( get_post_meta($post->ID, 'related_categories', true) ) );

$the_query = new WP_Query( array( 'post_type' => 'medals', 'posts_per_page' => 3, 'tax_query' => array( array( 'taxonomy' => 'medal-categories', 'field' => 'slug', 'terms' => $related, ), ), ) ); 

while ( $the_query->have_posts() ) : $the_query->the_post(); 

//loop starts after this