首先,我正在研究由另一位开发人员创建的主题,我在解决主题如何工作或开发人员的工作方面遇到了一些问题。所以,我需要将搜索显示结果从10增加到25.使用DEBUG插件我能够看到从WP执行的查询:
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
WHERE 1=1
AND (((wp_posts.post_title LIKE '%noticias%')
OR (wp_posts.post_content LIKE '%noticias%')))
AND wp_posts.post_type IN ('post', 'page', 'attachment', 'esp-publicitarios', 'opinion', 'especiales', 'portadadeldia', 'clasificados', 'anunciantes', 'logos')
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_author = 4
AND wp_posts.post_status = 'private')
ORDER BY wp_posts.post_date DESC
LIMIT 0, 10
我想要更改的是LIMIT
从10到25,所以我尝试在最后添加functions.php
文件:
function change_wp_search_size($query)
{
if ($query->is_search)
$query->query_vars['posts_per_page'] = 25; // Change 25 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
但是因为我仍然得到10个结果,所以没有工作。我还尝试在posts_per_page
文件中设置search.php
,如下所示:
// Just below get_header() call
$wp_query->set('posts_per_page', 25);
而且,同样的结果只有10项显示。可以扩展搜索查询结果中显示的最大项目数量吗?任何线索或建议?
答案 0 :(得分:0)
我不知道你问题的答案,但现在的查询对我来说似乎有点不合逻辑。
这样的事情似乎更合理......
SELECT SQL_CALC_FOUND_ROWS p.ID
FROM wp_posts p
WHERE 1=1
AND (
p.post_title LIKE '%noticias%'
OR
p.post_content LIKE '%noticias%'
)
AND p.post_type IN ( 'post', 'page', 'attachment', 'esp-publicitarios'
, 'opinion', 'especiales', 'portadadeldia'
, 'clasificados', 'anunciantes', 'logos')
AND (
p.post_status = 'publish'
OR (
p.post_author = 4
AND
p.post_status = 'private'
)
)
ORDER
BY p.post_date DESC
LIMIT 0, 10