私は2つのループを持つwordpressページを持っています...
<?php
global $post;
$args = array(
'showposts' => 1,
'category_name' => 'videos',
'meta_key' => 'feature-image',
);
$myposts = get_posts($args);
foreach( $myposts as $post ) : setup_postdata($post);
$exclude_featured = $post->ID;
?>
<span class="featured">
<?php the_title(); ?>
</span>
<?php endforeach; ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php the_title(); ?>
<?php endwhile; ?>
ここで、2 番目のループで $exclude_featured を使用して、その投稿をそのループから除外する必要があります。いくつかの実装を試しましたが、どれもうまくいきませんでした。2番目のループのwhileステートメントの上に次を追加しようとしました...
global $query_string;
query_posts( $query_string . '&exclude='.$exclude_featured );
この...
global $wp_query;
$args = array_merge( $wp_query->query_vars, array( 'exclude' => $exclude_featured ) );
query_posts( $args );
..そして運がなかった。これら 2 つのスニペットのいずれかを使用すると、表示する投稿の数を設定する pre_get_posts 関数も役に立たなくなることに気付きました。
どんな助けでもいただければ幸いです
編集:
while
2番目のループのステートメントの前に次の行を追加しようとしました..
global $wp_query;
$args = array_merge( $wp_query->query_vars, array( 'post__not_in' => $exclude_featured ) );
query_posts( $args );
ただし、まだ成功していません。次のエラーが表示されます。
警告: array_map() [function.array-map]: 引数 #2 は、2162 行目の /home/myuser/public_html/mysitedirectory/wp-includes/query.php の配列でなければなりません
警告: implode() [function.implode]: 無効な引数が /home/myuser/public_html/mysitedirectory/wp-includes/query.php 行 2162 に渡されました