【发布时间】:2019-11-16 12:24:36
【问题描述】:
我正在合作使用 ACF 和 CPT。我创建了一个简码放在我的主题的文本模块中。它运作良好。然而,当我调用 ACF get_field() 时,它没有返回任何值。我试着调查this question 和这个one,但都不管用。
我仔细检查了 ACF 字段名称。还尝试将输入类型从文本更改为数字,但仍然没有希望。
开发环境
- WordPress 版本:5.2.2(目前最新)
- 主题/儿童主题版本:Divi 3.25.3
我创建的简码:
<?php
add_shortcode('RESTAURANT_MENU', 'fetch_menu_products');
function fetch_menu_products($atts)
{
$atts = shortcode_atts(array(
'category_name' => ''
), $atts);
$category_name = $atts['category_name'];
$args = array(
'category_name' => $category_name,
'post_type' => 'menu',
'numberposts' => -1,
'post_status' => 'publish'
);
$output = '';
$menu_products = get_posts($args);
foreach ($menu_products as $menu_product) {
setup_postdata($menu_product);
$output .= '<section class="menu-item-wrapper">';
$output .= '<h3 class="menu-item__title">' . $menu_product->post_title . '</h3>';
$output .= '<div class="menu-item">';
$output .= '<div class="menu-item-description">';
$output .= '<p class="menu-item-description__text">' . $menu_product->post_content . '</p>';
$output .= '</div>';
$output .= '<ul class="menu-prices-list">';
if (get_field("regular_size_price") || get_field("large_size_price")) {
$output .= '<li class="menu-prices-list--item">R ' . get_field("regular_size_price", $menu_product->ID) . ' Currency</li>';
$output .= '<li class="menu-prices-list--item">L ' . get_field("large_size_price", $menu_product->ID) . ' Currency</li>';
}
if (get_field("price")) {
$output .= '<li class="menu-prices-list--item">' . get_field("price", $menu_product->ID) . ' Currency</li>';
}
$output .= '</ul>';
$output .= '</div>';
$output .= '</section>';
}
wp_reset_postdata();
return $output;
}
谁能帮我找出为什么它没有返回任何值,好吗?谢谢。
更新:ACF 位置规则
【问题讨论】:
-
你能试试 get_post_meta($menu_product->ID, 'regular_size_price');看看返回的是什么? developer.wordpress.org/reference/functions/get_post_meta
-
@NewUser 它什么也不返回。
-
@NewUser 我设法使用了您的方法
get_post_meta($menu_product->ID, 'regular_size_price')[0],而忽略了使用ACF提供的get_field()函数。 -
是的,我已经多次遇到这种情况。由于某些原因 get_field 有时不起作用。因此,我大部分时间都使用 get_post_meta() 而不是使用 get_field()
-
@NewUser 非常感谢,先生。您能否添加您的答案以便我接受?
标签: php wordpress advanced-custom-fields custom-post-type