我修改了我的搜索结果页面,其功能是将搜索结果计数更改为10.我怎样才能执行相同的操作,但是对于标记/术语页面?
function change_wp_search_size($query) {
if ($query->is_search) // Make sure it is a search page
$query->query_vars['posts_per_page'] = 10; // Change 10 to the number of posts you would like to show
return $query; // Return our modified query variables
}
add_filter('pre_get_posts', 'change_wp_search_size'); // Hook our custom function onto the request filter
找到并尝试了此代码,但它没有工作
function main_query_mods($query) {
// check http://codex.wordpress.org/Conditional_Tags to play with other queries
if (!$query->is_main_query()) {
return;
}
if (is_tag()) {
$query->set('posts_per_page', 10);
}
}
add_action('pre_get_posts', 'main_query_mods');
答案 0 :(得分:0)
问题在于你的
class Base(object): __metaclass__ = ABCMeta @abstractmethod def Foo(self): raise NotImplementedError @abstractmethod def Bar(self): raise NotImplementedError class Concrete(Base): def Foo(self): print 'Foo is implemented' >>> c = Concrete() Traceback (most recent call last): File "<pyshell#17>", line 1, in <module> c = Concrete() TypeError: Can't instantiate abstract class Concrete with abstract methods Bar >>>
;你必须这样is_tag()
。
$query->is_tag()
<小时/> <强>已更新强>
如果您想在
function main_query_mods($query) { if ($query->is_tag() && $query->is_main_query() && !is_admin()) { $query->set('posts_per_page', 10); } } add_action('pre_get_posts', 'main_query_mods');
和tag
页面上将帖子限制为10,那么 您必须在search
中一起使用is_tag()
和is_search()
言。
if
<小时/> 更新 v3
如果您要排除商店页面,则可以使用
function wh_tag_search_postCount($query) { if (($query->is_tag() || $query->is_search()) && $query->is_main_query() && !is_admin()) { $query->set('posts_per_page', 10); } } add_action('pre_get_posts', 'wh_tag_search_postCount');
和is_shop()
用于产品类别存档页面。
is_product_category()
所有代码都经过测试并且有效。
希望这有帮助!