私はwp-load.php
ファイルをインクルードすることによって外部のWPスクリプトからPHPを使用しています。
get_posts()
関数で投稿を取得した後、$wp_query->found_posts
が機能するようにできなくなりました。
代わりに何を使用すればよいですか。
ありがとうございます。
WordPressの関数get_posts()
は、グローバルにアクセスできないWP_Query
の独自のインスタンスを作成しています。
function get_posts($args = null) {
// ... cut ...
$get_posts = new WP_Query;
return $get_posts->query($r);
}
だから代わりに試すことができます
$results = get_posts($args);
echo count($results);
get_posts()
によって返されるpostオブジェクトの配列数を教えてください。
WP_Query()
クラスを直接使用することを検討できます。
使い方の例を次に示します。
<?php
// your input parameters:
$args = array(
'posts_per_page' => 10,
);
$my_query = new WP_Query( $args );?>
Found posts: <?php echo $my_query->found_posts;?>
<?php if ( $my_query->have_posts() ):?>
<ul>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
<li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php wp_reset_postdata();?>
最後にwp_reset_postdata()
を使用してグローバルな$post
オブジェクトを復元します。これはthe_post()
メソッドを介して変更するためです。
http://codex.wordpress.org/Function_Reference/wp_reset_postdata