我正在尝试将about页面的内容放在标题的div内,模板部分位于文件夹template-parts / content-about.php中
标题上的代码是:
<div id="slideOut">
<div class="slideout-content">
<?php
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/content', 'about' );
endwhile; // End of the loop.
?>
<?php include 'content-about.php'; ?>
</div><!-- .slideout-content -->
</div>
content-about.php看起来像这样:
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<div class="entry-content">
<?php
the_content();
wp_link_pages(
array(
'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'about' ),
'after' => '</div>',
)
);
?>
</div><!-- .entry-content -->
</article><!-- #post-<?php the_ID(); ?> -->
问题是在div上显示与当前页面相同的内容,例如,如果我位于主页上,则它应始终显示div的内容时仅在div内显示主页的内容。关于页面。 为什么不工作? 谢谢
答案 0 :(得分:1)
get_template_part()
正常工作。您的content-about.php
通常包含在内。
但是,由于您正在呼叫the_content()
,因此它会打印当前帖子/页面的内容。
您可以将the_content()
替换为get_the_content()
,并将about页面的帖子ID作为第三个参数传递。
请注意:
与
the_content()
的一个重要区别是get_the_content()
不会通过the_content
过滤器传递内容。这意味着get_the_content()
不会自动嵌入视频或扩展短代码。
因此,您可能想像这样使用apply_filters()
:
<?php
echo apply_filters( 'the_content', get_the_content( null, false, $about_page_id ) );
// where $about_page_id is the post id of your about page
答案 1 :(得分:1)
如果您不需要,甚至不需要get_template_part
。
您可以这样做:
<div id="slideOut">
<div class="slideout-content">
<?php echo get_the_content('','','your-about-page-id-here'); ?>
</div><!-- .slideout-content -->
</div>
get_template_part()
是一种包含带有标记的文件的方法,该标记可能依赖于循环,但要使内容分开。您在这里不一定需要它。
您还可以使用:
echo get_post_field('post_content', your-post-id-here );