Автоматически выбирать родительскую страницу, если настраиваемое поле равно заголовку страницы - PullRequest
0 голосов
/ 04 июня 2018

Можно ли автоматически устанавливать / выбирать родительскую страницу при создании страницы, когда настраиваемое поле и заголовок страницы равны?

Пример:

У меня есть следующая иерархия страниц:

  • Поставщики
    • Страница поставщика (название страницы = user1)
      • Пакет поставщика

Когда создается новая страница, значение настраиваемого поля равно «user1», и появляется страница с заголовком «user1».Затем страница поставщика, в данном случае «user1», должна автоматически устанавливаться в качестве родительской для создаваемой страницы (страница «Пакет поставщика»).

Надеюсь, она немного понятна, поскольку ее довольно сложнообъясните, я замечаю себя.

Возможно ли такое?

1 Ответ

0 голосов
/ 04 июня 2018

Этого можно добиться с помощью фильтров / действий ловушек после редактирования.Вот так

 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" на ваше имя настраиваемого поля, и оно будет работать.

...