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

时间:2015-10-06 14:07:52

标签: php wordpress search

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

1 个答案:

答案 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;
    }