Wp-admin仅按标题搜索帖子并显示子页面


wp-admin search posts by title only and show sub pages

我有一个自定义的帖子类型,在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;
}

与其尝试重构一个复杂的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;
    }