私のワードプレステーマのページの抜粋機能を有効にしました -
add_action( 'init', 'my_add_excerpts_to_pages' );
function my_add_excerpts_to_pages() {
add_post_type_support( 'page', 'excerpt' );
}
これにより、管理領域からページを追加または更新するときの抜粋ボックスが有効になりました。これは私が期待していたことです。
私はそのように私のサイトのホームページにそれぞれの抜粋を表示しようとしています -
$child_pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = 64 AND post_type = 'page' ORDER BY post_title", 'OBJECT'); ?>
<?php if ( $child_pages ) : foreach ( $child_pages as $pageChild ) : setup_postdata( $pageChild ); ?>
<div class="memberHover" id="member-<?php echo $pageChild->ID; ?>">
<div><h4><?php echo $pageChild->post_title; ?></h4>
<p><?php the_excerpt(); ?></p>
</div><?php echo get_the_post_thumbnail($pageChild->ID, '312,156'); ?>
</div>
<?php endforeach; endif; ?>
問題は、管理領域から手動で抜粋を入力しても、ホームページに表示するときに自動抜粋が作成されることです。各項目のデータベースにカスタムの抜粋があるという事実を拾っていないようです。
すべての手助けは大歓迎です!
ありがとう、トリスタン
私はWordpressがループすることをどうやって行うかについて非常に細心の注意を払っているので、あなたがしたように見えるようにあなたの質問に上のループをするより良い方法を投稿したいのですが不必要な仕事がたくさんあります。
あなたはすでにあなた自身の質問に答えましたが、the_excerpt()関数を使うことができるために、代わりにWP_Queryオブジェクトを使って動作するように上記のコードを書き直しました。より簡単に言及)。 WP_Queryクラスではできないようなクエリを実行する場合は、手動クエリを使用するだけで済みます。
<?php
$args = array('post_parent' => 64, 'orderby' => 'title', 'order' => 'ASC', 'post_type' => 'page', 'post_status' => 'publish');
$child_pages = new WP_Query($args);
?>
<?php if ($child_pages->have_posts()): ?>
<?php while($child_pages->have_posts()): $child_pages->the_post(); ?>
<div class="memberHover" id="member-<?php the_ID(); ?>">
<div><h4><?php the_title(); ?></h4>
<p><?php the_excerpt(); ?></p>
</div><?php echo get_the_post_thumbnail($post->ID, '312,156'); ?>
</div>
<?php endwhile; ?>
<?php endif; ?>
私は以前にこの問題を抱えています。あなたがそれをどのように処理したかは正しいですが、あなたはこれを行うこともできます。
<?php echo get_the_excerpt();?>
一定 :)
私は<p><?php the_excerpt(); ?></p>
を<p><?php echo $pageChild->post_excerpt; ?></p>
に更新し、これで問題は解決しました。