Wordpress中的类别排除

时间:2014-03-28 10:23:53

标签: php wordpress

我正在使用此Wordpress网站 - http://adsclip.com/

我使用此代码构建了一个国家/地区选择器(以其最简单的形式)

<select name="countries" id="countries" style="width:180px;" onchange="return change_action(this.value);">
<option value='us' id="us">United States</option>
<option value='gb' id="gb">United Kingdom</option>
</select>

Wordpress中的帖子分为国家/地区类别,我的目的是在选择特定国家/地区时排除整个网站的类别。

如果可能,我想将它们从主页中排除。

是否有插件或某些代码可以帮助我实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以通过在pre_get_postsparse_query操作中将所选国家/地区的slug作为查询参数传递来全局排除/包含类别。

pre_get_posts的示例:

add_action( 'pre_get_posts', 'filter_query_by_country' );

function filter_query_by_country( $query ) {

    // ... get the wanted country's slug here someway ...

    $query -> set( 'country', $slug );
}

在上面的钩子函数'country'中是分类名称,$slug是国家术语的slug。它将查询变量设置为仅搜索标记有特定country集的内容(类似于普通的category_name查询变量)。您可以使用$query -> is_main_queryis_category()和类似条件定位各种查询。

如果您有一个JavaScript解决方案,用于在选择某个国家/地区时在每个页面上实现查询变量,则此示例应该有效。谷歌的query_vars过滤器和add_rewrite_endpoint核心功能,以了解如何在WordPress中实现自定义的GET参数。

此外,您可以将所选国家/地区保存到会话变量中以保留为用户保存的选择(我假设您在此处创建语言切换器?)。