web-dev-qa-db-ja.com

WP_Queryで特定の投稿を表示する方法

私はいくつかの特定のWordPressの投稿を表示することでいくつかの助けが必要です。

私のサイトのユーザーは「お気に入りに追加」リンクをクリックすると、その投稿IDがuser_metaテーブルに配列として格納されます。

だから私は私のauthor.phpテンプレートページに以下を入れると...

<?php 
print_r ($curauth->user_favourite_post) ;
?>

...これで戻る...

Array
(
    [0] => 2387
    [1] => 1307
    [2] => 1149
    [3] => 1156
    [4] => 474
    [5] => 50
    [6] => 1131
    [7] => 1473
    [8] => 2388
    [9] => 2544
)

すべていいですね〜。これは、ユーザーが「お気に入り」としている投稿IDです。

私の質問は、どうすれば作者ページにこれらの投稿を表示できるかということです。これは….

    <?php
$my_query = new WP_Query();
$my_query->query(array( 'post__in' => array($curauth->user_favourite_post)));
while ($my_query->have_posts()) : $my_query->the_post(); 
?>

<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 
<?php endwhile; ?>

...しかし、それは単にすべての投稿を表示するのであり、ユーザーが「お気に入り」にした投稿は表示されません。私はさまざまな方法を試してみましたが、それらはすべてすべての投稿を返すだけです。

1
Brant

あなたが配列の配列を渡しているため、これを試してみてください:

<?php
$my_query = new WP_Query();
$my_query->query(array( 'post__in' => $curauth->user_favourite_post));
while ($my_query->have_posts()) : $my_query->the_post(); 
?>
    <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 
<?php endwhile; ?>
2
Bainternet