我正在尝试格式化具有自定义类型的单个帖子页面模板。我使用完全显示帖子内容的the_content(),但是如何调用各个内容字段以便我可以将它们安排在模板中?
的functions.php
function stories_init() {
$args = array(
'label' => 'Stories',
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => 'stories'),
'query_var' => true,
'menu_icon' => 'dashicons-video-alt',
'supports' => array(
'title',
'editor',
'custom-fields',
'thumbnail',)
);
register_post_type( 'stories', $args );
}
单post.html
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile; ?>
答案 0 :(得分:1)
如果您想要将内容的某些部分(例如每个段落单独或某些内容)分开,则需要创建要在帖子中使用的自定义字段。 the_content()
将始终打印出整个内容。
如果你想要一个插件来做,这是最受欢迎的 https://wordpress.org/plugins/advanced-custom-fields/
或者,在创建新帖子时,您可以转到顶部并点击Screen Options
,然后查看Custom Fields box
。
自定义字段将显示在您的帖子内容框下方。您可以创建一个新值并为其赋值(它们充当键/值对)。
要在模板中调用它,请使用<?php echo get_post_meta($post_id, $key, $single); ?>
$post_id
- &gt;是您想要元值的帖子的ID。使用$post->ID
在$post
变量范围内获取帖子的ID。使用get_the_ID()
检索WordPress循环中当前项的ID。
$key
- &gt;是一个包含所需元值名称的字符串。
$single
可以是true
或false
。如果设置为true,则函数将返回单个结果,作为字符串。如果为false或未设置,则该函数返回自定义字段的数组。
答案 1 :(得分:0)
由于您的自定义帖子的名称为stories
,因此您最好在主题目录中创建名称为single-stories.php
的专用文件。在该文件中,您可以执行以下操作:
<?php
// FILE-NAME: single-stories.php
if ( have_posts() ) :
while ( have_posts() ) : the_post(); $id= get_the_ID(); // IN CASE YOU NEED IT ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<span class="entry-author"><?php echo get_the_author(); ?></span>
<span class="entry-date"><?php echo get_the_date(); ?></span>
<!-- YOU CAN DO AS YOU WISH IN THIS FILE -->
<!-- AND THE RENDERING HERE WILL BE UNIQUE TO THE CUSTOM STORIES POSTS -->
<!-- HOWEVER, BE INFORMED THAT THIS IS FOR DETAILED (SINGLE-POST) VIEW ONLY -->
<?php endwhile; ?>
<?php endif; ?>