理由はわかりませんが、get_posts()
を使用してデータを検索しました。それから私はsetup_postdata()
を使いました...私はそれが私が新しい投稿データでthe_permalink()
などのような機能を使うことができるように使ったと思いますか?
<?php foreach ($childPosts as $cp) : setup_postdata($cp); ?>
<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
<?php if (has_post_thumbnail()) : ?>
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(($hasOutputNotFeaturedDiv) ? 'thumb-small' : null) ?></a>
<?php endif; ?>
<?php the_excerpt(); ?>
<p class="more"><a href="<?php the_permalink() ?>">Read more ...</a></p>
<?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
</article>
<?php endforeach; ?>
しかし、the_excerpt
だけが新しい投稿データの値を含んでいるように見えます。 echo get_the_permalink($cp)
を使用すれば問題なく動作することがわかりました。しかし、私は短い方が良いと思う
私は間違っているかもしれませんが、私が見ていることから、(query_postsだけではなく)カスタム選択クエリをするときは "setup_postdata()"を使うべきです: http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query
同様に、 "the_title()"や "the_permalink()"のようなタグをそのカスタムのselectクエリで使いたいのであれば、変数名 $ post を使う必要があります。 setup_postdata()の中の変数名 - AS ASLL - あなたの "foreach"ループの前に global $ post を呼び出すべきです。
だから基本的にそのコーデックスリンクのその例に従ってください。そして変数名$ postを変更しないでください - さもなければそれはそれを壊します。
HTH
交換する
foreach ( $childPosts as $cp ) : setup_postdata( $cp );
と
foreach ( $childPosts as $post ) : setup_postdata( $post );
そのため、setup_postdata()
とともに正確な$post
変数を使用する必要があります。
Setup_postdata()を使用している場所によっては(メインループや関数/サイドバーウィジェットなどに含まれていない場合など)、次のように宣言する必要もあります。
global $post;
setup_postdata($post);
ファミリーのコマンドなどを使用したい場合、global post;
はthe_title()
では機能しません。
https://codex.wordpress.org/Function_Reference/setup_postdata にあります
代わりに使う
// global $post; setup_postdata($post_object); //don't do this!
setup_postdata( $GLOBALS['post'] =& $post_object );
... $post_object
が有効なWP_Postオブジェクトであることも確認してください。
投稿を照会するときは、通常のループに一連の引数を渡して使用するだけです。最後にクエリをリセットします。
<?php
// makes query respect paging rules
$paged = get_query_var('paged');
// defining the arguements for the custom loop
$variablenameQuery = array(
'post_type' => 'seating-charts',
'post_status' => 'publish',
'cust_tax_name' => 'custom-tax-term',
'posts_per_page' => -1, // neg 1 means all posts
'orderby' => 'date',
'order' => 'ASC',
'paged' => $paged,
); // end query
// pass result into query_posts to get result
query_posts($variablenameQuery);
?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php // Individual Post Styling ?>
<?php endwhile; ?>
<?php // paged navigation - next post, previous post... ?>
<?php else : ?>
<h3>Ooops looks like there was an issue. Please <a href="<?php echo get_option('home'); ?>/contact" title="Contact Us">get in touch</a> with us and we'll get the problem fixed.</h3>
<?php endif; ?>
<!-- resets the WordPress Query -->
<?php wp_reset_query(); ?>