source

워드프레스:작성자 페이지에서 사용자 정의 분류법에 따라 포스트 카운트를 표시하는 방법

manycodes 2023. 10. 3. 11:05
반응형

워드프레스:작성자 페이지에서 사용자 정의 분류법에 따라 포스트 카운트를 표시하는 방법

카운터로 작성자 페이지에 사용자 정의 분류법을 표시하려고 하는데 방법을 모르는 것 같습니다.

는 기능하는 코드를 가지고 있습니다.

    add_action( 'pre_get_posts', function ( $q ) {

    if( !is_admin() && $q->is_main_query() && $q->is_author() ) {

        $q->set( 'posts_per_page', 100 );
        $q->set( 'post_type', 'custom_feedback' );

    }

});

그리고 나의 작가 페이지에서:

<div class="feedback-respond"> 
         <h3 class="feedback-title">User Feedback </h3>
             <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
               <?php the_content(); ?>
             <?php endwhile; else: ?>
               <p><?php _e('No posts by this author.'); ?></p>
             <?php endif; ?> 
            </div>

코드는 모든 작성자 프로파일에 대해 작동하지만 사용자 정의 분류법을 다음과 같이 표시하는 방법을 모릅니다.

사용자 피드백

6 긍정적 피드백 4 부정적 피드백

모든 피드백이 여기에 적용됩니다.

모든 피드백이 여기에 적용됩니다.

모든 피드백이 여기에 적용됩니다.

참고로 Positive와 Negative의 두 범주를 가진 사용자 지정 게시 유형(custom_feedback)과 Custom taxonomy(feedback_taxonomy)입니다.

주인님들 좀 도와주세요.

이를 달성할 수 있는 유일한 방법은 두 개의 개별 쿼리를 실행하고 두 개의 개별 쿼리에서 반환된 게시물을 세는 것입니다.이를 위해 우리는 사용할 것입니다.get_posts~하듯이get_posts에 몇 가지 중요한 기본값을 이미 전달했습니다.WP_Query쿼리를 보다 빠르고 성능 지향적으로 만들 수 있습니다.

쿼리에 엄청난 시간과 리소스 절약 기능을 추가할 것입니다.'fields' => 'ids'. 이것은 완전한 포스트 개체가 아닌 포스트 ID만 가져오는 것입니다.이렇게 하면 쿼리 시간과 DB 쿼리가 99% 단축되므로 전체 데이터베이스에서 두 개의 개별 쿼리를 실행하더라도 페이지 성능 손실이 눈에 띌 수 없습니다.

모든 것을 코드에 넣자 (이것은 author.php에 들어가며, 코드는 테스트되지 않았으며 최소한 PHP 5.4+가 필요합니다.)

$author_id = get_queried_object_id(); // Gets the author id when viewing the author page

// Add our term slugs into an array. 
$terms = ['positive', 'negative']; // Just make sure these values are correct
$count = [];
foreach ( $terms as $term ) {
    // Build our query
    $args = [
        'nopaging' => true,
        'post_type' => 'custom_feedback',
        'author' => $author_id,
        'tax_query' => [
            [
                'taxonomy' => 'feedback_taxonomy',
                'field' => 'slug',
                'terms' => $term
            ],
        ],
        'fields' => 'ids'
    ];
    $q = get_posts( $args );

    // Count the amount of posts and add in array
    $count[$term] = count( $q );
}

// Display our text with post counts, just make sure your array keys correspond with your term slugs used
$positive = ( isset( $count['positive'] ) ) ? $count['positive'] : 0;
$negative =( isset( $count['negative'] ) ) ? $count['negative'] : 0;

echo $positive . ' POSITIVE feedback ' . $negative . ' NEGATIVE feedback';

언급URL : https://stackoverflow.com/questions/31097777/wordpress-how-to-display-post-count-in-author-page-by-custom-taxonomy

반응형