web-dev-qa-db-ja.com

Front.page.phpでループ

私は私のホームページに3つの最近の投稿をロードしようとしています。私は全くの初心者ですが、私は進歩しているように思われます

これが私のコードです(下記)。各投稿のタイトルが "Home"になった瞬間に、ホームページが主なクエリであることがわかりますか?

<?php
    $latest_blog_posts = new WP_Query( array( 'posts_per_page' => 3 ) );
    if ( $latest_blog_posts->have_posts() ) : while ( $latest_blog_posts->have_posts() ) : $latest_blog_posts->the_post();
        get_template_part('loop');
    endwhile; endif;
?>

それでは、loop.phpを使用してブログから3つの最新の投稿を取得するように、このコードをどのように修正すればよいでしょうか。

私は別のページ/ループを使用するカスタム投稿タイプもあります。しかし、これが機能したら、同じコードを使用して機能させるためには、「ループ」を「ループ2」に交換するだけの問題であると思いますか。

誰かがこれを手伝ってくれることを願っています。それは一歩前進し、私のためにその時に二歩後退する!

_編集_

返信で要求されたloop.phpの内容:)

<?php if (have_posts()): while (have_posts()) : the_post(); ?>

    <!-- article -->
    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

        <!-- post thumbnail -->
        <?php if ( has_post_thumbnail()) : // Check if thumbnail exists ?>
            <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="h-entry__image-link">
                <?php the_post_thumbnail(array(120,120)); // Declare pixel size you need inside the array ?>
            </a>
        <?php endif; ?>
        <!-- /post thumbnail -->

        <!-- post title -->
        <h2 class="p-name">
            <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
        </h2>
        <!-- /post title -->

        <!-- post details -->
        <time datetime="<?php the_time('Y-m-j'); ?>" class="dt-published"><?php the_time('jS F Y'); ?></time>
        <!-- /post details -->

        <?php html5wp_summary('html5wp_index'); // Build your custom callback length in functions.php ?>

        <p><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="arrow-link">Read the full article</a></p>

        <?php edit_post_link(); ?>

    </article>
    <!-- /article -->

<?php endwhile; ?>

<?php else: ?>

    <!-- article -->
    <article>
        <h2><?php _e( 'Sorry, nothing to display.', 'html5blank' ); ?></h2>
    </article>
    <!-- /article -->

<?php endif; ?>
1
user1406440

これがあなたのやり方です。あなたのループは、アーカイブページまたはインデックスページにあることに基づいています。 (または自宅)

$args = array(
    'posts_per_page'    => 3,
    'post_type'     => 'post',  //choose post type here
    'order' => 'DESC',
);
// query
$the_query = new WP_Query( $args );


if( $the_query->have_posts() ):
    while( $the_query->have_posts() ) : $the_query->the_post();
        get_template_part('loop');
    endwhile; 
else :

endif; 

content-part.phpなしでフルクエリーを実行するように修正されたコード

// WP_Query arguments
$args = array(
    'posts_per_page'    => 3,
    'post_type'     => 'post',  //choose post type here
    'order' => 'DESC',
);

// The Query
$query = new WP_Query( $args );

// The Loop
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
?>
        <!-- article -->
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

    <!-- post thumbnail -->
    <?php if ( has_post_thumbnail()) : // Check if thumbnail exists ?>
        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="h-entry__image-link">
            <?php the_post_thumbnail(array(120,120)); // Declare pixel size you need inside the array ?>
        </a>
    <?php endif; ?>
    <!-- /post thumbnail -->

    <!-- post title -->
    <h2 class="p-name">
        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
    </h2>
    <!-- /post title -->

    <!-- post details -->
    <time datetime="<?php the_time('Y-m-j'); ?>" class="dt-published"><?php the_time('jS F Y'); ?></time>
    <!-- /post details -->

    <?php html5wp_summary('html5wp_index'); // Build your custom callback length in functions.php ?>

    <p><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="arrow-link">Read the full article</a></p>

    <?php edit_post_link(); ?>

</article>
<!-- /article -->
<?php
    }
} else {
    // no posts found
}

// Restore original Post Data
wp_reset_postdata();

あなたのテーマによって呼び出されている関数のために私はそれを完全にテストすることはできませんが、試してみてください。

これがうまくいけばあなたは記事の内容を引き出すことができます。現在のloop.phpのすべてのコンテンツを上記のコンテンツに置き換えますが、

<!-- article -->

<!-- /article -->

それはあなたの新しいloop.phpにあるでしょうから、あなたはそれをメインページから外します。

4
rudtek

これを試して

<?php
    $latest_blog_posts = new WP_Query( array( 'posts_per_page' => 3, 'offset' => 3 ) );
    if ( $latest_blog_posts->have_posts() ) : while ( $latest_blog_posts->have_posts() ) : $latest_blog_posts->the_post();
        get_template_part('loop');
    endwhile; endif;
?>

WPカスタムパラメータを使用したクエリの詳細については、 link を確認してください。