似乎无法在 wordpress 页面模板中结束循环
Can't seem to end loop in wordpress page template
完全公开,我是一个 PHP 菜鸟。
我在尝试为我的 Wordpress 网站构建的页面模板时遇到问题。想法是显示今天的每个 post,并排除所有其他。
有人帮我构建了一些代码,但我遇到了一个新问题 - 只显示了今天最旧的 post!我用间隔几分钟的三个 post 进行了测试,只有第一个出现了。
感谢任何帮助。
完整代码如下。
<?php
/**
* Template Name: Home Page
* The template for displaying all of today's posts on home page.
*
* This is the template that displays only today's posts.
* Please note that this is the WordPress construct of pages and that
* other "pages" on your WordPress site will use a different template.
*
* @package WordPress
* @subpackage Twenty_Fifteen
* @since Twenty Fifteen 1.0
*/
get_header(); ?>
<?php
$today = getdate();
$args = array(
'date_query' => array(
array(
'year' => $today['year'],
'month' => $today['mon'],
'day' => $today['mday'],
),
),
);
$query = new WP_Query( $args );
?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
// Start the loop.
if ($query->have_posts() )
echo'<ul>';
while ( $query->have_posts() ) {
$query->the_post();
}
echo '</ul>';
// Include the page content template.
get_template_part( 'content', 'page' );
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
/* Restore Post Data */
wp_reset_postdata();
else : // no posts found.
;
endif ;
?>
</main><!-- .site-main -->
</div><!-- .content-area -->
<?php get_footer(); ?>
$args = array(
'date_query' => array(
array(
'year' => $today['year'],
'month' => $today['mon'],
'day' => $today['mday'],
),
),
'posts_per_page' => -1
);
$query = new WP_Query( $args );
我终于搞清楚了!结果是
echo '<li>' . get_template_part( 'content', 'page' ) . '</li>';
应该在 while 循环内。
这就是为什么它只显示第一个的原因。没有分页问题。
在那之后,唯一的问题是链接由于某种原因无法正常工作 - 所以我摆脱了 get_template_part 函数中对 'page' 的调用。现在一切正常!
无论如何,谢谢大家的帮助!
完全公开,我是一个 PHP 菜鸟。 我在尝试为我的 Wordpress 网站构建的页面模板时遇到问题。想法是显示今天的每个 post,并排除所有其他。
有人帮我构建了一些代码,但我遇到了一个新问题 - 只显示了今天最旧的 post!我用间隔几分钟的三个 post 进行了测试,只有第一个出现了。
感谢任何帮助。
完整代码如下。
<?php
/**
* Template Name: Home Page
* The template for displaying all of today's posts on home page.
*
* This is the template that displays only today's posts.
* Please note that this is the WordPress construct of pages and that
* other "pages" on your WordPress site will use a different template.
*
* @package WordPress
* @subpackage Twenty_Fifteen
* @since Twenty Fifteen 1.0
*/
get_header(); ?>
<?php
$today = getdate();
$args = array(
'date_query' => array(
array(
'year' => $today['year'],
'month' => $today['mon'],
'day' => $today['mday'],
),
),
);
$query = new WP_Query( $args );
?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
// Start the loop.
if ($query->have_posts() )
echo'<ul>';
while ( $query->have_posts() ) {
$query->the_post();
}
echo '</ul>';
// Include the page content template.
get_template_part( 'content', 'page' );
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
/* Restore Post Data */
wp_reset_postdata();
else : // no posts found.
;
endif ;
?>
</main><!-- .site-main -->
</div><!-- .content-area -->
<?php get_footer(); ?>
$args = array(
'date_query' => array(
array(
'year' => $today['year'],
'month' => $today['mon'],
'day' => $today['mday'],
),
),
'posts_per_page' => -1
);
$query = new WP_Query( $args );
我终于搞清楚了!结果是
echo '<li>' . get_template_part( 'content', 'page' ) . '</li>';
应该在 while 循环内。
这就是为什么它只显示第一个的原因。没有分页问题。
在那之后,唯一的问题是链接由于某种原因无法正常工作 - 所以我摆脱了 get_template_part 函数中对 'page' 的调用。现在一切正常!
无论如何,谢谢大家的帮助!