[英]Category exclusion in 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中的帖子都按国家分类,我的目的是在选择特定国家时排除整个网站中的类别。
如果可能的话,我只想将它们排除在首页之外。
是否有插件或一些代码可以帮助我实现这一目标?
您可以通过在pre_get_posts
或parse_query
操作中将所选国家的pre_get_posts
作为查询参数传递来全局排除/包括类别。
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
是国家术语的子类别。 它将查询变量设置为仅搜索标记有特定country
集的内容(类似于普通的category_name
查询变量)。 您可以使用$query -> is_main_query
, is_category()
和类似的条件$query -> is_main_query
来定位各种查询。
如果选择某个国家/地区后,如果您有JavaScript解决方案可在每个页面上实现查询变量,则此示例应适用。 Google for query_vars
过滤器和add_rewrite_endpoint
核心功能,以学习如何在WordPress中实现自定义的GET参数。
另外,您可以将所选国家/地区保存到会话变量中,以保留为用户保存的选择(我想您是在这里创建语言切换器吗?)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.