워드프레스:작성자 페이지에서 사용자 정의 분류법에 따라 포스트 카운트를 표시하는 방법
카운터로 작성자 페이지에 사용자 정의 분류법을 표시하려고 하는데 방법을 모르는 것 같습니다.
저는 기능하는 코드를 가지고 있습니다.
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
'source' 카테고리의 다른 글
Oracle: SELECT 문으로 임시 테이블 생성 (0) | 2023.10.03 |
---|---|
WordPress Post에서 사용자 지정 표준 URL 지정 (0) | 2023.10.03 |
일반 스왑 매크로를 C에 구현 (0) | 2023.10.03 |
MySQL에 decimal을 저장하는 방법은? (0) | 2023.10.03 |
UNIX 휴대용 원자 작동 (0) | 2023.09.28 |