按自定义域筛选帖子(高级自定义域)

时间:2014-01-08 作者:realph

我正在使用高级自定义字段,并一直遵循本教程Creating a WP archive with Custom Field Filter. 在他们的例子中,他们使用单选按钮字段;我想为名为“book”的自定义帖子类型使用复选框字段,因为我的一些书籍有多个与之关联的“book\\u type”。

Field name: book\\u类型

Field type: 复选框字段

Choices: 男人、女人、孩子、配饰

我的functions.php 页面如下所示:

add_action(\'pre_get_posts\', \'my_pre_get_posts\');

function my_pre_get_posts( $query ) {
if( is_admin() ) {
    return;
}

$book_format = $query->get(\'meta_query\');
    if( !empty($_GET[\'book_type\']) ) {
        $book_format[] = array(
            \'key\'       => \'type\',
            \'value\'     => $_GET[\'book_type\'],
            \'compare\'   => \'LIKE\',
        );
    }

$query->set(\'meta_query\', $book_format);
return;
}
现在,当我手动将“book\\u type”添加到url时,如下所示:

dev.com/books?=men
它成功地展示了所有与男性有关的书籍。但当我添加“|”分隔符时,就像处理数组一样,我会得到一个空白页。

dev.com/books?=men|women|accessories
我是不是做错了什么?

非常感谢您的帮助。提前感谢!

1 个回复
最合适的回答,由SO网友:GhostToast 整理而成

如果您正在接收阵列meta_query 将会改变。LIKE 将不再有效,您需要执行IN 在这一点上进行比较。

我也不完全相信你通过了$_GET array

结束

相关推荐

按自定义域筛选帖子(高级自定义域) - 小码农CODE - 行之有效找到问题解决它

按自定义域筛选帖子(高级自定义域)

时间:2014-01-08 作者:realph

我正在使用高级自定义字段,并一直遵循本教程Creating a WP archive with Custom Field Filter. 在他们的例子中,他们使用单选按钮字段;我想为名为“book”的自定义帖子类型使用复选框字段,因为我的一些书籍有多个与之关联的“book\\u type”。

Field name: book\\u类型

Field type: 复选框字段

Choices: 男人、女人、孩子、配饰

我的functions.php 页面如下所示:

add_action(\'pre_get_posts\', \'my_pre_get_posts\');

function my_pre_get_posts( $query ) {
if( is_admin() ) {
    return;
}

$book_format = $query->get(\'meta_query\');
    if( !empty($_GET[\'book_type\']) ) {
        $book_format[] = array(
            \'key\'       => \'type\',
            \'value\'     => $_GET[\'book_type\'],
            \'compare\'   => \'LIKE\',
        );
    }

$query->set(\'meta_query\', $book_format);
return;
}
现在,当我手动将“book\\u type”添加到url时,如下所示:

dev.com/books?=men
它成功地展示了所有与男性有关的书籍。但当我添加“|”分隔符时,就像处理数组一样,我会得到一个空白页。

dev.com/books?=men|women|accessories
我是不是做错了什么?

非常感谢您的帮助。提前感谢!

1 个回复
最合适的回答,由SO网友:GhostToast 整理而成

如果您正在接收阵列meta_query 将会改变。LIKE 将不再有效,您需要执行IN 在这一点上进行比较。

我也不完全相信你通过了$_GET array

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: