Wordpress 在自定义 post 类型和 ACF 上结合 get_posts 和 category_name 函数
Wordpress combining get_posts and category_name functions on custom post type and ACF
我试图从自定义 Post 类型“dish”中获取一些 posts,价格为 ACF。我试图用价格显示菜肴的名称并想出了这个代码。我想知道这段代码中的循环部分是否被认为是好的做法?
<div id="main-content">
<div class="container-lg overflow-hidden">
<div class="row gx-5 d-flex flex-wrap">
<?php
$categories = get_categories();
foreach ($categories as $category){
$categoryName = $category->name; // look into the object named $category and then look into the variable named "name"
if ($categoryName != "Uncategorized"){
?>
<div class="p-4 col-6">
<div>
<h3><?php echo $categoryName;?></h3>
</div>
<?php
$args = array(
'posts_per_page' => -1,
'post_type' => "dish",
'category_name' => $categoryName
);
$dishes = get_posts($args);
foreach ($dishes as $dish){
?>
<div>
<span><?php echo $dish->post_title; ?></span>
<span class="float-end"><?php echo the_field('price', $dish); ?></span>
</div>
<?php
}
?>
</div>
<?php
}
}
?>
</div>
</div>
</div>
我没有使用 have_posts()
循环,因为我认为每个类别都会调用所有 post。所以我现在不确定我使用的代码在存档页面上是否是一个好习惯。我看到的另一种方式是为每个类别自定义查询。但是我再次不确定循环内的自定义查询是否是个好主意,以防万一有数千个 post。请指教
简答:
是的,没关系。我每次都会使用相同的方法。尽可能避免编写自己的自定义 sql 查询。 get_posts
和 category_name
的组合工作得很好。
不确定这是不是打字错误,但我也会替换:
<span class="float-end"><?php echo the_field('price', $dish); ?></span>
与
<span class="float-end"><?php echo the_field('price', $dish->ID); ?></span>
我试图从自定义 Post 类型“dish”中获取一些 posts,价格为 ACF。我试图用价格显示菜肴的名称并想出了这个代码。我想知道这段代码中的循环部分是否被认为是好的做法?
<div id="main-content">
<div class="container-lg overflow-hidden">
<div class="row gx-5 d-flex flex-wrap">
<?php
$categories = get_categories();
foreach ($categories as $category){
$categoryName = $category->name; // look into the object named $category and then look into the variable named "name"
if ($categoryName != "Uncategorized"){
?>
<div class="p-4 col-6">
<div>
<h3><?php echo $categoryName;?></h3>
</div>
<?php
$args = array(
'posts_per_page' => -1,
'post_type' => "dish",
'category_name' => $categoryName
);
$dishes = get_posts($args);
foreach ($dishes as $dish){
?>
<div>
<span><?php echo $dish->post_title; ?></span>
<span class="float-end"><?php echo the_field('price', $dish); ?></span>
</div>
<?php
}
?>
</div>
<?php
}
}
?>
</div>
</div>
</div>
我没有使用 have_posts()
循环,因为我认为每个类别都会调用所有 post。所以我现在不确定我使用的代码在存档页面上是否是一个好习惯。我看到的另一种方式是为每个类别自定义查询。但是我再次不确定循环内的自定义查询是否是个好主意,以防万一有数千个 post。请指教
简答:
是的,没关系。我每次都会使用相同的方法。尽可能避免编写自己的自定义 sql 查询。 get_posts
和 category_name
的组合工作得很好。
不确定这是不是打字错误,但我也会替换:
<span class="float-end"><?php echo the_field('price', $dish); ?></span>
与
<span class="float-end"><?php echo the_field('price', $dish->ID); ?></span>