如果自定义字段等于页面标题,则自动选择父页面

时间:2018-06-04 13:54:15

标签: wordpress parent-child parent advanced-custom-fields page-title

当自定义字段和页面标题相等时,是否可以在页面创建时自动设置/选择父页面?

示例:

我有以下页面层次结构:

  • 提供者
    • 供应商页面(页面标题= user1)
      • 提供商套餐

创建新页面时,自定义字段值为“user1”,并且有一个标题为“user1”的页面。然后,Provider Page(在本例中为“user1”)应自动设置为创建页面的父级(Provider Package页面)。

我希望它有点清楚,因为很难解释我注意到自己。

这样的事情可能吗?

1 个答案:

答案 0 :(得分:0)

您可以使用帖子编辑挂钩过滤器/操作来实现此目的。喜欢这个

 add_action( 'edit_post', 'parentsetter_save_post' );
    function parentsetter_save_post()
    {
      global $post;
      $custom_field=get_post_meta($post->ID,'customfieldname',true);

      if ($custom_field!=''){
        $parent_page=get_page_by_title($custom_field);
        if (!empty($parent_page) and $post->post_parent!=$parent_page->ID){
            global $wpdb;
            $wpdb->query($wpdb->prepare("update $wpdb->posts set post_parent=%d 
            where ID=%d",$parent_page->ID,$post->ID));
          }
      }
    }

只需替换" customfieldname"使用您的自定义字段名称,它将起作用。