Поддержка Проблемы и решения как и когда(!!) метабокс сохраняет значение?

  • Добрый вечер!
    помогите разобраться, или подскажите где почитать?

    вот по этой инструкции (https://tretyakov.net/post/wordpress-svyazyvanie-zapisej-raznogo-tipa/) создал себе метабокс.

    add_action('add_meta_boxes', function () {
        add_meta_box( 'my_words', 'слова', 'my_words_metabox', 'post', 'side', 'low'  );
    });
    
    // Метабокс с выбором эксперта
    function my_words_metabox( $post ){
    
        $words = get_posts(array( 'post_type'=>'words', 'posts_per_page'=>-1, 'orderby'=>'post_title', 'order'=>'ASC' ));
    
        if( $words ){
    
            echo '
            <select name="post_parent">';
            foreach( $words as $word ){
                echo '
                <option value="'. $word->ID .'" '. selected($word->ID, $post->post_parent)  .'>'.esc_html($word->post_title).'</option>
                ';
            }
            echo '</select>';
    
        }
        else
            echo 'просто нет слов!';
    }

    и вроде все работает, в поле Parent прописывается выбранный в метабоксе пост типа «words»

    и тут первый вопрос: как? когда? это значение туда прописывается?

    у меня стоит плагин для репостинга в ВК. при публикации поста, этот пост успешно передается в ВК, все отлично, пока мне не потребовалось передать в этот плагин

    $postData = get_post($post_id);
    $postData->post_parent;

    и тут плагин упорно получает 0 — то есть родительский пост не прописан?

    может быть метабокс прописывает значение в $post_parent после того, как плагин для ВК сработает? тогда как поменять порядок?

    в общем, вот такая проблема. куда копать?

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Почему не задать эти вопросы автору этой инструкции?
    Вот ты непонятно где нашел какой-то код и почему-то здесь спрашиваешь по особенностям его работы…..

    Автор alezhu

    (@alezhu)

    попробую объяснить… код простой. даже я разобрался. весь код я привел. но там ничего нет про запись значения. в других инструкциях для сохранения значения есть отдельный кусок кода.

    тогда как же оно работает?

    но второй вопрос интереснее: в момент публикации поста срабатывает сохранение значения метабокса и запуск плагина для ВК. в каком порядке они срабатывают? это как то управляется?

    с другой стороны, это действительно «непонятно что за код»? вроде все просто…

    У вас в статье код обрезанный, без сохранения. Читайте лучше букварь, примеры в нем https://wp-kama.ru/function/add_meta_box

    Модератор Yuri

    (@yube)

    в каком порядке они срабатывают? это как то управляется?

    Порядок зависит от того, на каком хуке висит обработчик и каков его приоритет. При прочих равных порядок выполнения зависит от порядка регистрации обработчиков (но это не точно).

    Автор alezhu

    (@alezhu)

    спасибо. как я понял: надо всё таки добавить явное сохранение значения из метабокса. разбор почему оно сохранялось до этого, оставим на потом.

    в плагине для ВК поискать где и на какой хук он вешается, что бы потом соотнести порядок выполнения со своим метабоксом.

    будем искать…(r)

Просмотр 5 ответов — с 1 по 5 (всего 5)