【问题标题】:Add posts select checkboxes using Advanced custom fields使用高级自定义字段添加帖子选择复选框
【发布时间】:2015-04-10 02:31:37
【问题描述】:

我有两种自定义帖子类型,称为酒店和房间。用户可以注册到我的网站,他们可以从他们的 wp 后端添加他们的酒店和房间。所以我的问题是当他们添加酒店时,他们需要选择酒店房间。

我正在使用高级自定义字段,它具有称为帖子对象的字段类型。但该字段在选择菜单中显示帖子。我需要用复选框来做。所以它很容易使用。

如果有人可以帮助我,我真的很感激。

谢谢

【问题讨论】:

  • 你做过这个吗?我一直想知道如何做同样的事情,因为我发现当前的选择方法对新手用户来说不是很直观。
  • 是的。但不是 ACF。我使用了选项框架。 wordpress.org/plugins/options-framework

标签: wordpress advanced-custom-fields


【解决方案1】:

它需要一点代码以及 ACF

添加复选框字段(例如:品牌)并在您的 functions.php 文件中添加以下代码

function my_acf_load_field( $field )
{
    global $post;
    $field['choices'] = array();
    wp_reset_query();
    $query = new WP_Query(array('show_posts' => 100));
    foreach($query->posts as $product_id=>$macthed_product){
            $choices[$macthed_product->ID] = $macthed_product->post_title;
    }
    $field['choices'] = array();

    if( is_array($choices) )
    {
        foreach( $choices as $key=>$choice )
        {
            $field['choices'][$key] = $choice;
        }
    }
     wp_reset_query();
    return $field;
}
add_filter('acf/load_field/name=brands', 'my_acf_load_field');

使用wp query parameters 过滤帖子。

Post id 将是 metabox 中以标题为标签的复选框值。

【讨论】:

  • 这个答案对我有用,但我必须在我的 WP_query 中使用以下内容: WP_Query(array('posts_per_page' => 100, 'post_type' => 'location', 'post_status' => '发布', '订单' => 'ASC'))
  • 另外,您应该注释掉或删除 wp_reset_query();线。如果您尝试从另一个循环中访问您的复选框字段,它们可能会导致问题。
猜你喜欢
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多