我正在使用此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中的帖子分为国家/地区类别,我的目的是在选择特定国家/地区时排除整个网站的类别。
如果可能,我想将它们从主页中排除。
是否有插件或某些代码可以帮助我实现这一目标?
答案 0 :(得分:0)
您可以通过在pre_get_posts
或parse_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_query
,is_category()
和类似条件定位各种查询。
如果您有一个JavaScript解决方案,用于在选择某个国家/地区时在每个页面上实现查询变量,则此示例应该有效。谷歌的query_vars
过滤器和add_rewrite_endpoint
核心功能,以了解如何在WordPress中实现自定义的GET参数。
此外,您可以将所选国家/地区保存到会话变量中以保留为用户保存的选择(我假设您在此处创建语言切换器?)。