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

posts - Setting posts_per_page for taxonomy term template

programmeradmin10浏览0评论

I have a custom taxonomy term page set up to display posts associated with that term (taxonomy-insight_type-academia.php). I figured I could use the following to limit the posts on that page based on code found here:

/

add_action( 'pre_get_posts', function( $query) {
    if ( $query->is_tax( 'academia', 'insight_type' ) ) {
        $query->set( 'posts_per_page', 1 );
    }
} );

I have added the term to the taxonomy but it doesn't seem to work. I can get it to work for the taxonomy, but not the term.

Is there a way to do this?

Thanks

I have a custom taxonomy term page set up to display posts associated with that term (taxonomy-insight_type-academia.php). I figured I could use the following to limit the posts on that page based on code found here:

https://developer.wordpress/reference/functions/is_tax/

add_action( 'pre_get_posts', function( $query) {
    if ( $query->is_tax( 'academia', 'insight_type' ) ) {
        $query->set( 'posts_per_page', 1 );
    }
} );

I have added the term to the taxonomy but it doesn't seem to work. I can get it to work for the taxonomy, but not the term.

Is there a way to do this?

Thanks

Share Improve this question asked Jul 25, 2020 at 2:27 PhillPhill 1971 gold badge1 silver badge10 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

The taxonomy template you have (taxonomy-insight_type-academia.php) is in the form of (taxonomy-{taxonomy}-{term}.php), and the format for is_tax() is is_tax( '<taxonomy>', '<term>' ), so in your pre_get_posts callback, you should:

// Use this.
if ( $query->is_tax( 'insight_type', 'academia' ) )

// Not this.
if ( $query->is_tax( 'academia', 'insight_type' ) )

Additionally — to avoid conflict with other queries, you should also check if the current query is the main one or not, and also check if it's an admin-side request.

if ( ! is_admin() && $query->is_main_query()
    && $query->is_tax( 'insight_type', 'academia' )
)

You may already know that, but I thought it'd be a good reminder. :)

发布评论

评论列表(0)

  1. 暂无评论