내 플러그인에서 단축 코드를 만들었으므로 잘 작동합니다. 단축 코드는 일부 매개 변수를 가져와 출력이있는 사용자 지정 루프를 만들어야합니다. 매개 변수의wordpress query (shortcode)는 항상 첫 번째 게시물을 반환합니다.
하나는 내가 모든 게시물 ($markers = '-1')
때로는 하나의 ($markers = '1')
또는 ($markers = 'x')
muliple의 데이터가 필요합니다 occations에 출력에 얼마나 많은 게시물 ($ 마커)에 대한 루프
$args=array(
'meta_key'=>'_mykey',
'post_status'=>'publish',
'post_type'=>'post',
'orderby'=>'date',
'order'=>'DESC',
'posts_per_page'=>$markers,
);
$wp_query = new WP_Query();
$wp_query->query($args);
if ($wp_query->have_posts()) : while (($wp_query->have_posts())) : $wp_query->the_post();
// do the loop using get_the_id() and $post->id
endwhile;endif;
wp_reset_query();//END query
입니다.
단일 페이지/게시물에서 모두 훌륭하게 작동하지만 내 문제는이 기능이 둘 이상의 게시물 (! is_single) 및 ($ markers = '1'
)이있는 장소에있을 때 항상 문제의 데이터를 반환한다는 것입니다. 최신 게시물 및 올바른 하나가 아닙니다. (예 : 기본 wordpress 테마에서 10 개의 게시물을 표시합니다 - 모두 동일한 데이터입니다)
분명히 $post->ID
의 문제입니다. wp 루프 바깥 쪽에서 맞춤 루프를 수행 할 때 올바른 게시물 ID를 가질 수 있습니까? 아니, 내가) (get_the_id 사용하지 말아야 작동하는 것 같다하지만, 한 -
global $post;
$thePostIDtmp = $post->ID; //get the ID before starting new query as temp id
$wp_query = new WP_Query();
$wp_query->query($args);
// Start Custom Loop
if (!is_single()){
$post_id_t = $thePostIDtmp;}
else {
$post_id_t = $post->ID;}
하여 문제를 ovverride 다음 $post_id_t
을 사용하려고? 또는 쿼리를 사용하지 말고 get_posts를 사용해야합니까 ??
모든 아이디어/솔루션/생각 ??
답변 주셔서 감사합니다 - 나는 내 경우에는 도움이되지 않는 query_posts() 또는 get_posts()를 사용해야 할 것이라고 생각합니다. 확실히 이유는 확실하지 않습니다. –
게시 ID를 반향 출력 해 보았습니다. 그래서 언제 변화하는지 알 수 있습니다. if 문 내에서이를 반향 출력하면 tmp 변수를 설정할 때 상황을 파악하는 데 도움이 될 수 있습니다. – matpol