Отобразить метабокс комментарии для запланированных постов (Scheduled)
Создал несколько запланированных постов - добавил код от KAMA чтоб открыть возможность добавлять комментарии к запланированным постам в редакторе.
Теперь вопрос как заставить отображаться метабокс в редакторе если post status future
Ручной костыль:
WordPress/wp-admin/includes/meta-boxes.php
// после $stati[] = 'private'; // добавим $stati[] = 'future';
Почитал первый вопрос и этот, моё решение такое для всего:
// Принудительно отображаем метабокс с комментариями для Записей (post) add_action( 'add_meta_boxes_post', function () { add_meta_box( 'commentsdiv', __( 'Comments' ), 'post_comment_meta_box', null, 'normal', 'core', [ '__back_compat_meta_box' => true ] ); } ); // Вешаемся на тот же хук, что и наш метабокс при сохранении, только раньше add_action( 'wp_ajax_replyto-comment', function () { $post = $raw_post = get_post( (int) $_POST['comment_post_ID'] ); // Подменяем данные в кеше (статус записи) $post->post_status = 'publish'; wp_cache_set( $post->ID, $post, 'posts' ); // Возвращаем кеш обратно на wp_die(), так как он точно потом сработает add_filter( 'wp_die_ajax_handler', function ( $function ) use ( $raw_post ) { wp_cache_set( $raw_post->ID, $raw_post, 'posts' ); return $function; } ); }, 0 );Данный код позволяет отобразить метабокс и писать в нём комментарии для записи с любым статусом (черновик, запланированная и т.д.). Критикуйте ?
Тонко, хрупко даже наверное. Но если нужно именно для статуса
draft, то пожалуй это единственный вариант.Если это хрупко, значит легко "сломать". Можно пример, как сломать?
Дополнил тот код, так должен отображаться метабокс комментов у запланированных записей.
На данный момент этот код не решает проблему для черновика (не запланированная запись):
Тестировал код, он рабочий - есть баг - выводит метабокс на момент создания записи - в этот момент метабокс полностью не рабочий.
Нужна дополнительная проверка в коде на статус текущей записи.
Нужно чтобы он не показывался при создании или чтобы показывался и работал?
В идеале показывался и работал, но наверно такое не возможно , так как пост создаётся и не имеет ещё полноценных полей. И из-за этого наверно ажакс комментария не может сработать , хотя я не знаю как там обстоят дела.
Возможно. campusboy предложил как раз такое решение, чтобы и для драфтов коммент можно было оставить.