我有很多用 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 新手,所以我可能很愚蠢。你能帮我解决这个问题吗?
为了实现此目的,除了模板名称文件头之外,还可以使用模板帖子类型指定模板支持的帖子类型:如下所示。
<?php
/*
Template Name: Custom page layout
Template Post Type: custom_slug
*/
模板帖子类型您需要传递您的CPT的slug。
阅读更多这里
<?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; ?>
上面的代码是显示单个帖子数据的正确循环。
这是上面帖子中分享的黄金https://developer.wordpress.org/themes/template-files-section/custom-post-type-template-files/ https://www.advancedcustomfields.com/resources/registering-a-custom-post-type/
如果您分享您的 ACF 设置也会有帮助