首先,我使用默认主题twentyseventeen. 我用过插件Custom Post Type UI 创建名为film_kernal
对于该帖子类型,我创建了一些自定义字段,其中一个称为Quality Score
我遵循了一个教程,该教程让我将其显示为一个正在工作的归档文件。我创建的自定义帖子显示在列表中的存档页面上,但它们不显示我的自定义字段,无论是在此存档页面上,还是当我实际单击帖子并访问单个页面时。
我想在存档页上显示一个自定义字段,我创建了一个新的子主题布局,名为archive-film_kernal.php
但是,我不确定如何修改代码以添加到“质量分数”字段中。
模板代码是原始代码的副本archive.php
下面是。从阅读中我认为我需要get_post_meta() 但我不知道如何正确使用这个字段,也不知道如何只选择一个或多个自定义字段,而不是全部。
提前谢谢。
<?php /*Template Name: Custom Archive Layout Test */?>
<?php
get_header(); ?>
<div class="wrap">
<?php if ( have_posts() ) : ?>
<header class="page-header">
<?php
the_archive_title( \'<h1 class="page-title">\', \'</h1>\' );
the_archive_description( \'<div class="taxonomy-description">\', \'</div>\' );
?>
</header><!-- .page-header -->
<?php endif; ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
if ( have_posts() ) :
?>
<?php
/* Start the Loop */
while ( have_posts() ) :
the_post();
/*
* Include the Post-Format-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Format name) and that will be used instead.
*/
]
get_template_part( \'template-parts/post/content\', get_post_format() );
endwhile;
the_posts_pagination(
array(
\'prev_text\' => twentyseventeen_get_svg( array( \'icon\' => \'arrow-left\' ) ) . \'<span class="screen-reader-text">\' . __( \'Previous page\', \'twentyseventeen\' ) . \'</span>\',
\'next_text\' => \'<span class="screen-reader-text">\' . __( \'Next page\', \'twentyseventeen\' ) . \'</span>\' . twentyseventeen_get_svg( array( \'icon\' => \'arrow-right\' ) ),
\'before_page_number\' => \'<span class="meta-nav screen-reader-text">\' . __( \'Page\', \'twentyseventeen\' ) . \' </span>\',
)
);
else :
get_template_part( \'template-parts/post/content\', \'none\' );
endif;
?>
</main><!-- #main -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
</div><!-- .wrap -->
<?php
get_footer();
最合适的回答,由SO网友:WebElaine 整理而成
这取决于您如何添加自定义字段。如果使用自定义字段插件,则可以调用特定于插件的函数。例如,使用ACF,您可以调用get_field(\'fieldname\')
检索一个特定的自定义字段。
如果您没有使用ACF(或者即使使用了),只要字段存储为Posteta,就可以执行以下操作
<?php
if(get_post_meta($post->ID, \'quality_score\', true)) {
echo get_post_meta($post->ID, \'quality_score\', true);
}
?>
或更严格的格式,即。
<?php
if(get_post_meta($post->ID, \'quality_score\', true)) {
$quality_score = get_post_meta($post->ID, \'quality_score\', true);
echo \'<div class="quality">\' . $quality_score . \'</div>\';
}
?>