ACF get_field()没有在WordPress中返回值

时间:2019-07-06 作者:Tes3awy

我正在合作使用ACF和CPT。我创建了一个短代码,放在主题的文本模块中。它工作得很好。然而,当我给ACF打电话时get_field(), 它没有返回任何值。我试着调查this question 还有这个one, 但两者都不起作用。

我仔细检查了ACF字段名称。还试图将输入类型从文本更改为数字,但仍然没有希望。

Development Environment

主题/子主题版本: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">\';
          $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>\';
        $output .= \'</ul>\';
        $output .= \'</div>\';
        $output .= \'</section>\';
      }
      wp_reset_postdata();
      return $output;
    }
请帮我找出为什么它没有返回任何值?非常感谢。

更新:这里还有ACF Location Rules

ACF Location Rules

自定义字段设置

Custom Field Setup

1 个回复
SO网友:sgr12

我刚刚在Divi(3.25.4)上测试了它,它应该可以工作,除非3.25.3中有与短代码相关的bug。

确保在CPT UI中创建的自定义帖子类型(菜单)在内置分类中勾选了类别(WP Core),并且在菜单帖子类型中创建的一些自定义帖子将Pizza作为一个类别。另外,我希望在Divi页面的文本模块的文本区域中,您使用category name参数正确地编写了短代码?例如:

[RESTAURANT_MENU category_name="Pizza"]

相关推荐

Geoip shortcodes in comments

我想知道如何从geoip插件添加国家/地区短代码(https://pl.wordpress.org/plugins/geoip-detect/) 输入注释字段。[geoip\\u detect2 property=“country”]据我所知,注释字段必须是所见即所得字段(默认情况下不是文本)。还有其他方法吗?通过自定义php函数或其他方式?你好,Michal