最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Custom post type show on both Home and Date Archive

programmeradmin2浏览0评论

Found below snippet to pull posts from a custom post type 'pictures' into the home page and date archive page..

Added to functions.php this works for home page:

function add_custom_post_type_to_query( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'post_type', array('post', 'pictures') );
    }
}
add_action( 'pre_get_posts', 'add_custom_post_type_to_query' );

But this works for neither:

function add_custom_post_type_to_query( $query ) {
    if ( $query->is_home() && $query->is_date() && $query->is_main_query() ) {
        $query->set( 'post_type', array('post', 'pictures') );
    }
}
add_action( 'pre_get_posts', 'add_custom_post_type_to_query' );

Would also like to add in !is_admin() to keep the admin screens clear, and not sure how to go about that.

thanks,

Found below snippet to pull posts from a custom post type 'pictures' into the home page and date archive page..

Added to functions.php this works for home page:

function add_custom_post_type_to_query( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'post_type', array('post', 'pictures') );
    }
}
add_action( 'pre_get_posts', 'add_custom_post_type_to_query' );

But this works for neither:

function add_custom_post_type_to_query( $query ) {
    if ( $query->is_home() && $query->is_date() && $query->is_main_query() ) {
        $query->set( 'post_type', array('post', 'pictures') );
    }
}
add_action( 'pre_get_posts', 'add_custom_post_type_to_query' );

Would also like to add in !is_admin() to keep the admin screens clear, and not sure how to go about that.

thanks,

Share Improve this question edited Mar 23, 2019 at 16:33 Qaisar Feroz 2,1471 gold badge9 silver badges20 bronze badges asked Mar 23, 2019 at 4:23 MatJonMatJon 174 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 2

In your code ( $query->is_home() && $query->is_date() && $query->is_main_query() ) always returns false because $query->is_home() and $query->is_date() cannot be true on same page.
Try this,

function add_custom_post_type_to_query( $query ) {
    if ( ! is_admin()  &&  $query->is_main_query() ) {
       if ( $query->is_date() ||  $query->is_home()  ) {

           $query->set( 'post_type', array('post', 'pictures') );

       }
    }
}
add_action( 'pre_get_posts', 'add_custom_post_type_to_query' );

I hope this helps!

发布评论

评论列表(0)

  1. 暂无评论