현재 사용자의 모든 게시물을 표시해야하는 프런트 엔드 대시 보드를 만들고 있습니다. 그래서 저는 주로 모든 국가에 게시물을 표시해야 published
, trashed
하고 pending
. 현재 간단한 쿼리를 사용하고 있지만 게시 된 게시물 만 반환합니다.
$query = array(
'post_type' => 'my-post-type',
'post_author' => $current_user->ID
);
query_posts($query);
누구든지 도울 수 있습니까? 다른 무엇을해야합니까?
답변
post_status 매개 변수를 사용할 수 있습니다.
* 'publish' - a published post or page
* 'pending' - post is pending review
* 'draft' - a post in draft status
* 'auto-draft' - a newly created post, with no content
* 'future' - a post to publish in the future
* 'private' - not visible to users who are not logged in
* 'inherit' - a revision. see get_children.
* 'trash' - post is in trashbin. added with Version 2.9.
나는 그것이 ‘모든’을 받아 들일 지 확신하지 못하므로 원하는 모든 유형을 사용하고 배열하십시오 :
$query = array(
'post_type' => 'my-post-type',
'post_author' => $current_user->ID,
'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash')
);
$loop = new WP_Query($query);
while ( $loop->have_posts() ) : $loop->the_post();
답변
상태를 가진 모든 게시물을 얻는 방법은 간단합니다.
$articles = get_posts(
array(
'numberposts' => -1,
'post_status' => 'any',
'post_type' => get_post_types('', 'names'),
)
);
이제 모든 게시물에서 반복 할 수 있습니다.
foreach ($articles as $article) {
echo $article->ID . PHP_EOL; //...
}
답변
WP_Query
클래스 메소드는 ->query()
수용 any
에 대한 인수를 post_status
. wp_get_associated_nav_menu_items()
증거를 참조하십시오 .
동일은 간다 get_posts()
(위의 호출을위한 단지 래퍼입니다).
답변
대부분의 경우이 매개 변수 get_posts()
와 함께 사용할 수 있습니다 'any'
.
$posts = get_posts(
array(
'numberposts' => -1,
'post_status' => 'any',
'post_type' => 'my-post-type',
)
);
그러나 이렇게하면 상태가 trash
이고 게시물이 표시되지 않습니다 auto-draft
. 다음과 같이 명시 적으로 제공해야합니다.
$posts = get_posts(
array(
'numberposts' => -1,
'post_status' => 'any, trash, auto-draft',
'post_type' => 'my-post-type',
)
);
또는 get_post_stati () 함수를 사용하여 기존의 모든 상태를 명시 적으로 제공 할 수 있습니다.
$posts = get_posts(
array(
'numberposts' => -1,
'post_status' => get_post_stati(),
'post_type' => 'my-post-type',
)
);
답변
당신이 통과하더라도 any
같은 post_status
, 당신은 여전히 결과에 게시물을받지 않습니다 다음 조건 모두에 해당하는 경우 :
- 단일 게시물을 쿼리 중입니다. 이에 대한 예
name
는 슬러그에 의한 쿼리 입니다. - 게시물이 공개 상태가 아닌 게시물 상태입니다.
- 클라이언트에 활성 관리 세션이 없습니다 (예 : 현재 로그인하지 않은 상태).
해결책
모든 상태에 대해 명시 적으로 쿼리하십시오 . 예를 들어, stati를 쿼리하지 trash
않거나 auto-draft
(원하는 것 같지 않은 경우) 다음과 같이 할 수 있습니다.
$q = new WP_Query([
/* ... */
'post_status' => get_post_stati(['exclude_from_search' => false]),
]);