我在写这个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的帖子被分成国家类别,我的目标是当选择一个特定的国家时,排除整个网站的类别。
如果可能的话,我只想把它们从主页上剔除。
有没有插件或者代码可以帮我做到这一点?
发布于 2014-03-28 10:37:08
通过在pre_get_posts
或parse_query
操作中将所选国家/地区的插件作为查询参数传递,可以全局排除/包含类别。
使用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术语的slug。它将一个查询变量设置为只搜索用某个查询集标记的内容(类似于普通的category_name
查询变量)。您可以使用$query -> is_main_query
、is_category()
和类似的条件语句来针对各种查询。
如果您有一个JavaScript解决方案,用于在选择某个国家时在每个页面上实现一个查询变量,那么这个示例应该可以工作。Google for query_vars
filter和add_rewrite_endpoint
核心函数,了解如何在WordPress中实现自定义的GET参数。
此外,您可以将选定的国家/地区保存到会话变量中,以便为用户保存选择(我假设您在这里创建了一个语言切换器?)。
https://stackoverflow.com/questions/22710088
复制