我有一个自定义帖子类型,在CMS中我可以改变搜索,所以它只搜索帖子的标题,然后也浏览该页面的所有子页面。
目前我有以下内容,它确实将搜索限制为标题,但我正在努力解决如何最好地处理子页面并在此查询中返回它们。
add_filter( 'posts_search', 'admin_search_shops', null, 2 );
function admin_search_shops( $search, $a_wp_query ) {
if ( !is_admin() ) return $search;
$search = preg_replace( "# OR \(.*posts\.post_content LIKE \\'%.*%\\'\)#", "", $search );
return $search;
}
答案 0 :(得分:0)
不是尝试重建一个复杂的SQL查询,而是将这些子项添加到' posts_results'最后过滤。结合您已经完成的工作(将搜索限制为标题),以下内容将添加到任何子页面中。
add_filter( 'posts_results', 'admin_postsearch_shops', null, 2);
function admin_postsearch_shops( $posts ) {
foreach( $posts as $post ) {
$args = array( 'post_parent' => $post->ID);
foreach ( get_children( $args ) as $child ) {
$posts[] = $child;
}
}
return $posts;
}