Администратор Wordpress: опубликовать изменения идентификатора в метабоксе избранного изображения

Я добавляю опции в метаблок "Избранные изображения" при редактировании поста. Из метабокса мне нужно получить доступ к идентификатору записи. Это прекрасно работает, когда post.php сначала загружается. Однако, если я выберу "Выбрать выбранное изображение" или "Удалить выбранное изображение", идентификатор поста изменится (на статический идентификатор домашней страницы) при перезагрузке метабокса.

Вот некоторый код, который будет отображать идентификатор сообщения в поле избранного изображения:

add_filter( 'admin_post_thumbnail_html', 'add_options_to_featured_image' );
function add_options_to_featured_image( $html ){
    global $post;

    $html .= '<label>Post '.$post->ID.'</label>';

    return $html;
}

Вот шаги, чтобы воспроизвести то, что я вижу:

  1. Редактировать пост
  2. Обратите внимание, что идентификатор сообщения правильный (например, 7)
  3. Нажмите "Выбрать рекомендуемое изображение" и выберите изображение
  4. Метабокс обновляется, чтобы показать выбранное изображение
  5. Обратите внимание, что идентификатор сообщения теперь неверен (идентификатор статической главной страницы)

Мой вопрос: Как я могу последовательно получить идентификатор редактируемой страницы из метабокса избранного изображения? Я хотел бы попытаться избежать JavaScript.

1 ответ

Решение

Как я могу последовательно получить идентификатор редактируемой страницы из метабокса избранного изображения?

Установить function принять два аргумента, вот так:

add_filter( 'admin_post_thumbnail_html', 'add_options_to_featured_image', 10, 2 );
function add_options_to_featured_image( $html, $post_id ){
    $html .= '<label>Post '.$post_id.'</label>';

    return $html;
}

См. https://developer.wordpress.org/reference/hooks/admin_post_thumbnail_html/ для получения дополнительной информации.

Другие вопросы по тегам