如何在Wordpress帖子页面中安排the_content()?

时间:2016-07-15 19:58:01

标签: php wordpress custom-wordpress-pages

我正在尝试格式化具有自定义类型的单个帖子页面模板。我使用完全显示帖子内容的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;  ?>

2 个答案:

答案 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可以是truefalse。如果设置为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;  ?>