web-dev-qa-db-ja.com

最近公開された投稿を表示する

私のwpブログの最近の 公表済み 投稿をリストし、いくつかのカテゴリの特定の投稿を除外したいです。次のコードは問題なく動作します。10件の最近の投稿がリストされており、リストされているカテゴリの投稿は無視されます。ただし、ドラフト投稿もリストされています。

$args = array( 'numberposts' => '10', 'tax_query' =>
 array(
     'post_type' => 'post',
     'post_status' => array( 'publish' ),
     'tax_query' => array(
         'relation' => 'AND',
         array(
             'taxonomy' => 'category',
             'field' => 'id',
             'terms' => array( 10, 11, 57 ),
             'operator' => 'NOT IN',
         ),
     ),
 )
);



$recent_posts = wp_get_recent_posts(  $args );
foreach( $recent_posts as $recent ){
    echo '<li><a href="' . get_permalink($recent["ID"]) . '">'.   $recent["post_title"].'</a> </li> ';
    }
?>

'post_status' => array( 'publish' ),または'post_status' => 'publish',の行は機能しません。何か手がかりがありますか?

2
Sadik

使用している引数が間違っています。彼らはする必要があります:

$args = array(
            'numberposts' => '10',
            'post_type'   => 'post',
            'post_status' =>'publish',
            'tax_query'   => array(
                'taxonomy' => 'category',
                'field' => 'id',
                'terms' => array( 10, 11, 57 ),
                'operator' => 'NOT IN',
            )
 );

またはもっと短い:

$args = array(
            'numberposts'        => '10',
            'post_type'          => 'post',
            'post_status'        => 'publish',
            'category__not_in'   => array( 10, 11, 57 )
 );
5
cybmeta