私はプラグインの中にショートコードを作成しました。 ショートコードはいくつかのパラメータを取り、出力を伴うカスタムループを作成する必要があります。wordpress query(shortcode)は、常に最初の投稿を返します。
パラメータの1つは、私はすべての記事($markers = '-1')
からのデータ、時には唯一の($markers = '1')
またはmuliple ($markers = 'x')
を持っている必要がありますどのように多くの記事を出力する($マーカー)のためのループoccationsで
$args=array(
'meta_key'=>'_mykey',
'post_status'=>'publish',
'post_type'=>'post',
'orderby'=>'date',
'order'=>'DESC',
'posts_per_page'=>$markers,
);
$wp_query = new WP_Query();
$wp_query->query($args);
if ($wp_query->have_posts()) : while (($wp_query->have_posts())) : $wp_query->the_post();
// do the loop using get_the_id() and $post->id
endwhile;endif;
wp_reset_query();//END query
です。
私は、この機能が複数の投稿(!is_single)と($ markers = '1'
)を持っている場所にあるときに、いつもそのページのデータを返します最新の投稿であり、正しいものではありません。 (たとえば、デフォルトのwordpressテーマでは、10個の投稿が表示されます - すべて同じデータです)
明らかに$post->ID
の問題ですwpループの外にカスタムループを実行するときに正しいポストIDを持つことはできますか?
私は
global $post;
$thePostIDtmp = $post->ID; //get the ID before starting new query as temp id
$wp_query = new WP_Query();
$wp_query->query($args);
// Start Custom Loop
if (!is_single()){
$post_id_t = $thePostIDtmp;}
else {
$post_id_t = $post->ID;}
して問題をovverride、その後$post_id_t
を使用しようとした - )( は私がget_the_id使うべきではありませんが、動作しているようではないのですか?または私はクエリを使用しないでください(とget_postsを使用して)??
アイデア/解決策/考え方??
私はquery_posts()またはget_posts()を使用する必要があると思っています。私の場合は助けにはならないと思われますが、確かにわかりません。 –
投稿IDをエコーしてみましたかあなたはそれがいつ変わるかを見ることができます。 if文の中でそれをエコーすると、tmp変数を設定すると、何が起こっているのかを知るのに役立ちます。 – matpol