Wordpress: 태그로 게시물을 가져오려고 합니다.
자동으로 몇 개의 게시물을 만들고 태그를 추가하는 코드를 작성했습니다."All posts" 관리 패널에 태그가 표시되어 게시물 "Tag" 링크를 클릭하면 태그가 있는 게시물만 볼 수 있습니다.
단, $wp_query를 사용하여 쓰고 있는 플러그인에서는 원하는 태그가 있는지 없는지에 관계없이 투고의 완전한 리스트가 반환됩니다.
제 코드는 다음과 같습니다.
// Now retrieve all items matching this brand name . . .
$query=new WP_Query(array('posts_per_page=5', array('tag' => array($brand_name))));
// The Loop
while ( $query->have_posts() ) : $query->the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
// Reset Post Data
wp_reset_postdata();
5만 반환하도록 지시하면 10개의 결과가 나옵니다.실제로는 태그가 붙어있는 총수이기 때문에 2개의 포스트만 돌려받을 수 있습니다.
웹에서 찾아보면 같은 문제를 겪고도 해결책이 없는 사람들이 많은 것 같아요.태그를 지정하는 방법을 10개 정도 시도했습니다만, 반환된 투고 수가 틀렸다는 것은 제가 완전히 틀렸거나 버그가 있다는 것을 의미합니다.도움이 된다면 워드프레스 버전은 3.4.1입니다.
워드프레스 프로가 이걸 밝혀줄 수 있나요?
잘 부탁드립니다!
답변은 https://codex.wordpress.org/Template_Tags/get_posts 에서 찾을 수 있습니다.
다음 예제에서는 'tax_query'를 사용하여 'genere' 사용자 지정 분류법에서 'jazz' 태그가 지정된 게시물을 표시합니다.
$args = array(
'tax_query' => array(
array(
'taxonomy' => 'genre',
'field' => 'slug',
'terms' => 'jazz'
)
)
);
$postslist = get_posts( $args );
그래서 너를 위해서
$args = array(
'posts_per_page' => 5,
'tax_query' => array(
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => sanitize_title( $brand_name )
)
)
);
$postslist = get_posts( $args );
이거 드셔보세요
$original_query = $wp_query;
$wp_query = null;
$args = array('posts_per_page' => 5, 'tag' => $brand_name);
$wp_query = new WP_Query($args);
if (have_posts()) :
while (have_posts()) : the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
endif;
$wp_query = null;
$wp_query = $original_query;
wp_reset_postdata();
코드로 다음을 시도합니다.
$query=new WP_Query(array('posts_per_page=5', 'tag' => $brand_name));
다음 대신:
$query=new WP_Query(array('posts_per_page=5', array('tag' => array($brand_name))));
상세한 것에 대하여는, https://codex.wordpress.org/Class_Reference/WP_Query#Tag_Parameters 를 참조해 주세요(최근의 중복 투고에 기재되어 있습니다).
주의: $brand_name은 문자열 배열 또는 쉼표로 구분된 값 등을 사용할 수 있으며, 위의 코드가 작동합니다.
또는 다음을 시도합니다.
$myPosts = get_posts(array('tag' => $brand_name));
https://codex.wordpress.org/Template_Tags/get_posts 를 참조해 주세요.
시간이 좀 걸렸어요이렇게 하면 한 게시물에서 같은 태그 중 하나를 사용하여 무작위로 3개의 게시물을 얻을 수 있습니다.
$post = get_post(); // if you don't have $post->ID already
$tag_ids = wp_get_post_tags( $post->ID, array( "fields" => "ids" ) ); // current tags
$args = array(
"numberposts" => 3,
"orderby" => "rand",
"post__not_in" => array( $post->ID ), //exclude current
"post_type" => "article", // defaults to "post", also note "any" option
"tax_query" => array(
array(
"taxonomy" => "post_tag",
"field" => "term_id",
"terms" => $tag_ids
)
)
);
$posts = get_posts( $args ); // getting posts
그래도 동작하지 않으면 에 의해 생성된SQL 요구를 표시할 수 있습니다.$args
문제를 더 해결하려면
$q = new WP_Query($args);
echo $q->request;
언급URL : https://stackoverflow.com/questions/12272997/wordpress-trying-to-get-posts-by-tag
'programing' 카테고리의 다른 글
javascript에서 가져오기 응답이 json 객체인지 확인하는 방법 (0) | 2023.03.27 |
---|---|
Amazon 로드 밸런서 뒤에서 WordPress HTTPS 문제를 해결하는 방법 (0) | 2023.03.27 |
모든 Oracle 패키지와 프로시저를 전문으로 검색할 수 있는 방법이 있습니까? (0) | 2023.03.22 |
http promise가 있는 typscript 모듈에서 "this"가 정의되지 않은 이유 (0) | 2023.03.22 |
app.config에서 서비스 주입 (0) | 2023.03.22 |