按参数之间筛选WordPress帖子

时间:2013-04-29 作者:Farhad

如何按分类法和参数之间过滤WordPress帖子?考虑一个具有“内存大小”分类法的移动网站,我需要显示内存超过256 mb但小于768 mb的帖子。是否可以通过WP\\u查询类或“posts\\u where”过滤器?我知道post\\u meta更适合这一目的,但之前已经建立过网站。

1 个回复
SO网友:kaiser

税务查询限额Taxonomy Query 在WordPress中,支持以下三个参数operator 参数:IN, NOT INAND. 所以它基本上不能做你想做的事。即使使用advanced(tax_query) 查询。

元查询和可能性

您需要稍微移动您的概念,并使用后期元字段/数据。这个WP_Query 使用WP_Meta_Query, 这比WP_Tax_Query. (对于这个问题)主要的一点是,它通过compare 参数,您也可以按其排序:\'orderby\' => \'meta_value_num\'\'orderby\' => \'meta_value\'.

(string) compare - 操作员进行测试。可能的值为\'=\', \'!=\', \'>\', \'>=\', \'<\', \'<=\', \'LIKE\', \'NOT LIKE\', \'IN\', \'NOT IN\', \'BETWEEN\', \'NOT BETWEEN\', \'EXISTS\' (仅在WP>=3.5时),以及\'NOT EXISTS\' (也仅在WP>=3.5时)。默认值为\'=\'.

引用自Meta Query 部分WP_Query 文件@Codex wp dot组织

因此,您可以(应该)切换要排序的分类法,并根据其进行筛选/搜索,以成为自定义字段/元数据。

不可能?分类学的阶梯式救援

正如我在答案顶部所解释的,有一个IN 用于分类查询的运算符。所以你可以打电话给get_terms() Source: queryposts.com 并获取所有在您范围内的术语,然后构建一系列分类单元/术语,作为您的“限制器”。

// Set "min/max"-limits:
$min = 256;
$max = 768;
// Get all terms in that taxonomy
$memory = get_terms( array( \'memory_size\' ) );

// Container for our values
$mem_range = array();
// Check if we got an error
if ( ! is_wp_error( $memory ) )
{
    foreach ( $memory as $val )
    {
        // Convert to absolute integer for comparison
        $val = absint( $val );

        // Add to stack
        $val >= $min
        AND $val <= $max
            AND $mem_range[] = $val;
    }
}
// Debug
else
{
    // Output only for admin users and others that have that cap
    current_user_can( \'manage_options\' )
        AND print $memory->get_error_message();
}

// Setup the basic arguments
$args = array( \'post_type\' => \'hardware\' );
// Check if we got some terms in range
if ( ! empty( $mem_range ) )
{

    $args[\'tax_query\'] = array( array(
        \'taxonomy\' => \'memory_size\',
        \'field\'    => \'slug\',
        \'terms\'    => $mem_range,
        \'operator\' => \'IN\'
    ) );
}

// Grab the results
$hardware_search = new WP_Query( $args );
结论虽然这对于高性能网站来说可能不是最好的主意,因为你要为一个任务做两个查询,但它可能满足一个人的需要。对于更高级的单一查询,我仍然建议切换到元数据。

结束

相关推荐

如何为自定义分类更新WordPress自定义SQL Select查询,以确保语法正确?

我有一个Wordpress网站,是在自定义分类法完全实现之前,由第三方web开发人员为2.9版编写的。我们已经升级到最新的wordpress版本3.5。x、 有一个SQL Select查询在Wordpress错误中生成了一系列错误。日志文件。在此模板中,我们使用了一些自定义分类法。我关心的问题如下:(wp\\u term\\u taxonomy.taxonomy)作业这里的一个关键点是not all Wordpress posts are using the taxonomy field jobs. 因