如何将ACF值拉入自定义帖子类型存档

时间:2014-02-20 22:44:39

标签: php custom-post-type advanced-custom-fields

所以我的问题是我刚刚创建了一个自定义帖子类型,并创建了几个帖子来配合这个。我在我创建的模板single-post_type.php中使用ACF字段。这些显示在单个帖子上很好,但我需要在单个帖子页面上显示的一些ACF字段值显示在自定义帖子索引上。我试过寻找答案,但似乎无法找到我正在寻找的东西。

供参考,以下是我注册自定义帖子类型的代码:

// Add new post type for Available Homes
add_action('init', 'available_homes');
function available_homes() 
{
$available_homes_labels = array(
    'name' => _x('Available Homes', 'post type general name'),
    'singular_name' => _x('Available Home', 'post type singular name'),
    'all_items' => __('All Available Homes'),
    'add_new' => _x('Add New Listing', 'recipes'),
    'add_new_item' => __('Add New Listing'),
    'edit_item' => __('Edit Listing'),
    'new_item' => __('New Listing'),
    'view_item' => __('View Listing'),
    'search_items' => __('Search in Available Homes'),
    'not_found' =>  __('No listings found'),
    'not_found_in_trash' => __('No listings found in trash'), 
    'parent_item_colon' => ''
);
$args = array(
    'labels' => $available_homes_labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true, 
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => 20,
    'supports' => array('title','editor','custom-fields'),
    'has_archive'  =>  'available_homes'
); 
register_post_type('available_homes',$args);
}

我在single-available_homes.php上有一些基本的ACF字段

然后我有一个名为archive-available_homes.php的页面,其中包含以下代码:

<?php get_header(); ?>
<h1 class="page-title">Available Homes</h1>
    <div id="primary">
        <div id="content" role="main">

        <?php if ( have_posts() ) : ?>

            <?php /* Start the Loop */ ?>

            <?php while ( have_posts('') ) : the_post(); ?>

                <?php get_template_part( 'content', get_post_type() );     ?>

            <?php endwhile; ?>

        <?php else : ?>
            <article id="post-0" class="post no-results not-found">
                <header class="entry-header">
                    <h1 class="entry-title"><?php _e( 'Nothing   Found', 'twentyeleven' ); ?></h1>
                </header><!-- .entry-header -->
                <div class="entry-content">
                    <p><?php _e( 'Apologies, but no results were   found for the requested archive. Perhaps searching will help find a related post.', 'twentyeleven' ); ?></p>
                    <?php get_search_form(); ?>
                </div><!-- .entry-content -->
            </article><!-- #post-0 -->
        <?php endif; ?>

        </div><!-- #content -->
    </div><!-- #primary -->
<div class="widget_area">
<?php dynamic_sidebar("gravity_form_widget_area"); ?>
</div>
<?php get_footer(); ?>

ACF字段和其他所有内容在单个帖子上工作正常,但我不知道如何处理以在存档页面上显示ACF字段数据。帮助

4 个答案:

答案 0 :(得分:3)

你可以使用我的插件ACF CPT Options Pages

Download here

答案 1 :(得分:2)

ACF字段必须在循环中。您的archive-available_homes.php文件没有循环,它调用

<?php get_template_part( 'content', get_post_type() );     ?>

所以在content.php中你必须添加你想要渲染的字段。 否则,您可以创建自己的content-available_homes.php文件并致电:

<?php get_template_part( 'content', 'available_homes' );     ?>

答案 2 :(得分:0)

您是否考虑过如何在其他网页上发布字段:http://www.advancedcustomfields.com/resources/how-to-get-values-from-another-post/

这可能就是你要找的东西。

答案 3 :(得分:0)

2020 -我已经在几分钟内使用此插件:https://wordpress.org/plugins/acf-archive/