如何为自定义帖子类型创建模板?

问题描述 投票:0回答:2

我有很多用 acf 创建的自定义帖子类型。搜索时,由于acf更好的搜索,有结果。我在子主题中创建了 single-{}.php 以显示所点击帖子的详细信息。但我无法获取其字段详细信息。

这样的代码不起作用(have_posts() 总是返回 false):

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
    <div class="post-content">
        <?php the_content(); ?>
        <p><?php get_field('field_name'); ?></p>
    </div>
<?php endwhile; endif; ?>

我可以通过此获取现场数据,但我想要点击帖子中的具体数据:

$args = array(
    'post_type' => 'your_custom_post_type', // Replace with your custom post type
    'posts_per_page' => 10, // Adjust as needed
);

$block_query = new WP_Query($args);

if ($block_query->have_posts()) {
    while ($block_query->have_posts()) {
        $block_query->the_post();
        // Your code to display each post goes here
    }
    wp_reset_postdata();
} else {
    echo '<p>No posts found.</p>';
}

我是 WordPress 新手,所以我可能很愚蠢。你能帮我解决这个问题吗?

wordpress advanced-custom-fields custom-post-type custom-wordpress-pages wordpress-gutenberg
2个回答
0
投票

为了实现此目的,除了模板名称文件头之外,还可以使用模板帖子类型指定模板支持的帖子类型:如下所示。

<?php
/*
Template Name: Custom page layout
Template Post Type: custom_slug 
*/

模板帖子类型您需要传递您的CPT的slug。

阅读更多这里


0
投票
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
    <div class="post-content">
        <?php the_content(); ?>
        <p><?php get_field('field_name'); ?></p>
    </div>
<?php endwhile; endif; ?>

上面的代码是显示单个帖子数据的正确循环。

  1. 也许从创建一个 single.php 文件开始,看看是否可以查看自定义帖子类型单一视图。
  2. 然后确保您的自定义帖子类型块正确。 WP 和 acf 使用单数和复数名称,例如 events 和 event。测试 single-event.php

这是上面帖子中分享的黄金https://developer.wordpress.org/themes/template-files-section/custom-post-type-template-files/ https://www.advancedcustomfields.com/resources/registering-a-custom-post-type/

如果您分享您的 ACF 设置也会有帮助

© www.soinside.com 2019 - 2024. All rights reserved.