查询具有自定义分类的帖子

时间:2015-03-03 作者:Lindsey

我很难从自定义分类法中查询具有多个标记的帖子。例如,如果我有一篇名为“草莓拼接”的帖子,它有膳食类型(自定义分类)“无麸质”和“饮料”

当我筛选帖子以查找“无麸质”时,会显示“草莓拼接”,但当我搜索“饮料”时,却没有任何结果。我的问题只是看第一个术语。

看看http://jimalie.com.au/recipes/

这是我生成自定义分类法的部分代码:

$args = array( 
    \'labels\' => $labels,
    \'public\' => true,
    \'show_in_nav_menus\' => true,
    \'show_ui\' => true,
    \'show_tagcloud\' => true,
    \'show_admin_column\' => false,
    \'hierarchical\' => false,

    \'rewrite\' => true,
    \'query_var\' => true
);

register_taxonomy( \'meal_types\', array(\'recipes\'), $args );
这是我的查询代码:

$mealtype = $_POST[\'mealtype\'];

$args = array(\'post_type\' => \'recipes\', \'meal_types\' => $mealtype, \'paged\' => $paged);
我从动态填充的下拉列表中获得$mealtype:

$terms = get_terms( \'meal_types\' );
$count = count($terms);
if ($count > 0) {
    foreach ($terms as $term) { ?>
    <option value="<?php echo $term->name; ?>" <?php if($_POST[\'mealtype\'] == $term->name) { echo \'selected\'; } ?>><?php echo $term->name; ?></option>
    <?php }
}
我的查询:

$wp_query = new WP_Query( $args );
if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts() ) : $wp_query->the_post();
整个模板的代码:http://pastebin.com/5e07FMJm

我怎样才能看到所有的条款?

1 个回复
SO网友:Lindsey

已在Facebook上获得帮助,只需更改以下内容:

<option value="<?php echo $term->name; ?>" <?php if($_POST[\'mealtype\'] == $term->name) { echo \'selected\'; } ?>><?php echo $term->name; ?></option>
对此:

<option value="<?php echo $term->slug; ?>" <?php if($_POST[\'mealtype\'] == $term->slug) { echo \'selected\'; } ?>><?php echo $term->name; ?></option>

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post

查询具有自定义分类的帖子 - 小码农CODE - 行之有效找到问题解决它

查询具有自定义分类的帖子

时间:2015-03-03 作者:Lindsey

我很难从自定义分类法中查询具有多个标记的帖子。例如,如果我有一篇名为“草莓拼接”的帖子,它有膳食类型(自定义分类)“无麸质”和“饮料”

当我筛选帖子以查找“无麸质”时,会显示“草莓拼接”,但当我搜索“饮料”时,却没有任何结果。我的问题只是看第一个术语。

看看http://jimalie.com.au/recipes/

这是我生成自定义分类法的部分代码:

$args = array( 
    \'labels\' => $labels,
    \'public\' => true,
    \'show_in_nav_menus\' => true,
    \'show_ui\' => true,
    \'show_tagcloud\' => true,
    \'show_admin_column\' => false,
    \'hierarchical\' => false,

    \'rewrite\' => true,
    \'query_var\' => true
);

register_taxonomy( \'meal_types\', array(\'recipes\'), $args );
这是我的查询代码:

$mealtype = $_POST[\'mealtype\'];

$args = array(\'post_type\' => \'recipes\', \'meal_types\' => $mealtype, \'paged\' => $paged);
我从动态填充的下拉列表中获得$mealtype:

$terms = get_terms( \'meal_types\' );
$count = count($terms);
if ($count > 0) {
    foreach ($terms as $term) { ?>
    <option value="<?php echo $term->name; ?>" <?php if($_POST[\'mealtype\'] == $term->name) { echo \'selected\'; } ?>><?php echo $term->name; ?></option>
    <?php }
}
我的查询:

$wp_query = new WP_Query( $args );
if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts() ) : $wp_query->the_post();
整个模板的代码:http://pastebin.com/5e07FMJm

我怎样才能看到所有的条款?

1 个回复
SO网友:Lindsey

已在Facebook上获得帮助,只需更改以下内容:

<option value="<?php echo $term->name; ?>" <?php if($_POST[\'mealtype\'] == $term->name) { echo \'selected\'; } ?>><?php echo $term->name; ?></option>
对此:

<option value="<?php echo $term->slug; ?>" <?php if($_POST[\'mealtype\'] == $term->slug) { echo \'selected\'; } ?>><?php echo $term->name; ?></option>

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post