每个自定义 post 类型文件的自定义部分
Custom sections per custom post type file
所以我正在努力实现这一点:
我已经创建了自定义 post 类型,并且有一个自定义 post 类型我想要其中的可变部分。那个 post 类型是 "workarea"。该自定义 post 类型有四个 post(主页)。
在这些页面的底部,有一个相关的 post 部分。
其中每一个都应该显示不同的相关 post。但是,我使用 "single-workarea.php" 作为自定义 post 类型模板。所以没有办法(至少我知道)创建一个循环来显示不同的相关 posts,应该每页显示。
如果我编辑该循环,它适用于(显然)来自自定义 post 类型 "workarea" 的所有页面。
有没有办法在 post 类型 php 文件中创建 variable/custom 部分?
一个解决方案是我删除 post 类型,只创建带有模板名称的页面,例如 "workarea",但问题是,每当我的客户想要添加新 post 类型 "workarea",他必须来找我,这样我才能创建一个新的 php 文件。
希望我解释清楚了
提前致谢!
答案是根据我们在评论部分讨论的内容进行的。我们必须不断改进它,直到达到预期的结果。
如评论部分所述,我们应该可以通过自定义循环来实现。
如果您选中 WP_Query docs,它会向您显示所有可以根据 $args
数组
过滤搜索的方法
单-workarea.php
<?php
// get current post category,
// assumes there is only ONE category assigned to the current post
$category = get_the_category( get_the_ID() );
$args = array(
'posts_per_page' => -1, // get all posts
'orderby' => 'random', // randomly get posts
'post_type' => ['food', 'staff', 'themes'], // search only these post types
'post_status' => 'published', // only get published posts
'cat' => $category[0]->term_id // search posts only with this category ID
);
$the_query = new WP_Query( $args );
while ( $the_query->have_posts() ) {
$the_query->the_post();
//echo related post data...
echo '<a href="'. get_permalink() .'">' . get_the_title() . '</a>';
}
wp_reset_postdata();
?>
综合以上,你应该可以得到你所需要的,或者接近于它。
所以我用高级自定义字段分类字段解决了这个问题。
现在是循环:
<?php
$relevant = get_field('relevante_posts_categorie');
$postid = get_the_ID();
$loop = new WP_Query( array(
'post_type' => 'actueel',
'posts_per_page' => 3,
'category__in' => $relevant,
'post__not_in'=> array($postid),
)
);
?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<a href="<?php the_permalink();?>">
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3 relevant__item">
<div class="thumbnail__wrapper">
<div class="thumbnail" style="background-image:url('<?php the_field('thumbnail');?>');"></div>
</div>
<div class="title">
<h4><?php the_title();?></h4>
</div>
</div>
</a>
<?php endwhile; wp_reset_query(); ?>
分类字段得到类别 I select。现在可以自定义我要显示的 post。剩下要做的唯一一件事就是创建多个查询循环,我在其中定义自定义 post 类型。
感谢您的帮助。
所以我正在努力实现这一点:
我已经创建了自定义 post 类型,并且有一个自定义 post 类型我想要其中的可变部分。那个 post 类型是 "workarea"。该自定义 post 类型有四个 post(主页)。
在这些页面的底部,有一个相关的 post 部分。
其中每一个都应该显示不同的相关 post。但是,我使用 "single-workarea.php" 作为自定义 post 类型模板。所以没有办法(至少我知道)创建一个循环来显示不同的相关 posts,应该每页显示。
如果我编辑该循环,它适用于(显然)来自自定义 post 类型 "workarea" 的所有页面。
有没有办法在 post 类型 php 文件中创建 variable/custom 部分?
一个解决方案是我删除 post 类型,只创建带有模板名称的页面,例如 "workarea",但问题是,每当我的客户想要添加新 post 类型 "workarea",他必须来找我,这样我才能创建一个新的 php 文件。
希望我解释清楚了
提前致谢!
答案是根据我们在评论部分讨论的内容进行的。我们必须不断改进它,直到达到预期的结果。
如评论部分所述,我们应该可以通过自定义循环来实现。
如果您选中 WP_Query docs,它会向您显示所有可以根据 $args
数组
单-workarea.php
<?php
// get current post category,
// assumes there is only ONE category assigned to the current post
$category = get_the_category( get_the_ID() );
$args = array(
'posts_per_page' => -1, // get all posts
'orderby' => 'random', // randomly get posts
'post_type' => ['food', 'staff', 'themes'], // search only these post types
'post_status' => 'published', // only get published posts
'cat' => $category[0]->term_id // search posts only with this category ID
);
$the_query = new WP_Query( $args );
while ( $the_query->have_posts() ) {
$the_query->the_post();
//echo related post data...
echo '<a href="'. get_permalink() .'">' . get_the_title() . '</a>';
}
wp_reset_postdata();
?>
综合以上,你应该可以得到你所需要的,或者接近于它。
所以我用高级自定义字段分类字段解决了这个问题。
现在是循环:
<?php
$relevant = get_field('relevante_posts_categorie');
$postid = get_the_ID();
$loop = new WP_Query( array(
'post_type' => 'actueel',
'posts_per_page' => 3,
'category__in' => $relevant,
'post__not_in'=> array($postid),
)
);
?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<a href="<?php the_permalink();?>">
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-3 relevant__item">
<div class="thumbnail__wrapper">
<div class="thumbnail" style="background-image:url('<?php the_field('thumbnail');?>');"></div>
</div>
<div class="title">
<h4><?php the_title();?></h4>
</div>
</div>
</a>
<?php endwhile; wp_reset_query(); ?>
分类字段得到类别 I select。现在可以自定义我要显示的 post。剩下要做的唯一一件事就是创建多个查询循环,我在其中定义自定义 post 类型。
感谢您的帮助。