代码之家  ›  专栏  ›  技术社区  ›  user2812779

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

  •  0
  • user2812779  · 技术社区  · 6 年前

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

    例子:

    我有以下页面层次结构:

    • 提供者
      • 提供者页面(页面标题=用户1)
        • 提供程序包

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

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

    这样的事情有可能吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Elvin Haci    6 年前

    您可以通过使用后期编辑钩子过滤器/操作来实现这一点。这样地

     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));
              }
          }
        }
    

    只要用您的自定义字段名替换“custom field name”,它就可以工作了。