Intereting Posts
Как отменить последние изменения, сделанные Как выполнить цикл с окончательным результатом, отформатированным по-разному? Как автоматически загружать / прикреплять статическое изображение google в качестве отображаемого изображения сообщения? показать все сообщения в wordpress admin crashing после опции экрана 999 WordPress 3.2 нарушил мой код TinyMCE Сбросить весь статус запасов в woocommerce Переименование вкладки профиля Buddypress Как добавить стиль редактора style.css в wp_editor на передний план для комментариев Атрибут передачи ошибок в функцию короткого кода Как передать параметр url в поисковом запросе Установите максимальное количество загрузок для пользователей с определенной ролью пользователя Показать специальное сообщение для личной страницы? Отключить вкладку библиотеки мультимедиа для не админов на экране загрузчика Шаблон перенаправляется внутри плагина, не перенаправляя Повторяемые поля Metabox с Textarea (или wp_editor)

Добавить параметры для показа изображения

Я хочу добавить опцию к отображаемому метабоку изображений.

Я нашел способ сделать это здесь

Проблема, с которой я сталкиваюсь, заключается в сохранении значения базы данных.

Вот что я пробовал:

add_filter( 'admin_post_thumbnail_html', 'featured_image_opacity'); function featured_image_opacity( $myhtml ) { //$selected_option = GET META OPACITY HERE return $myhtml .= 'Opacity: <form> <select> <option'. ($selected_option == "0.1" ? "selected" : "" ).' value="0.1">0.1</option> </select> </form>'; } function meta_save( $post_id ) { if( isset( $_POST[ 'opacity' ] ) ) {update_post_meta( $post_id, 'opacity', sanitize_text_field( $_POST[ 'opacity' ] ) );} } add_action( 'save_post', 'meta_save' ); 

Я вижу форму-вариант и могу выбрать вариант, но он не сохранит данные.
(Я также попытался включить функцию в функцию, но это также не работает)

Надеюсь, кто-то увидит, что я делаю неправильно.

Вы поняли это правильно, но с несколькими незначительными проблемами.

Во-первых, используйте префикс uniqe для ваших функций и значений – opacity или meta_save являются довольно универсальными и могут использоваться другими авторами.

Во-вторых, часть, где вы получаете метапрозрачность, отсутствует, я добавил ее для вас – просто извлеките мета значение из текущего сообщения.

В-третьих, я создал функцию, чтобы зацикливать различные непрозрачности. Я тоже использовал функцию selected() , но с третьим параметром (echo), установленным на false поэтому выбранный параметр возвращает мое значение вместо эхо-сигнала. Это удобная функция WordPress для создания таких параметров и тому подобного.

Вот и все.

Просто не забудьте отрегулировать свой код при использовании эскиза сообщения, и обязательно получите f711_opacity от объекта $post , а не самого эскиза, поскольку он сохраняется в сообщении.

 add_filter( 'admin_post_thumbnail_html', 'f711_add_something_to_feature_thumb_box', 10, 2 ); //same as before function f711_add_something_to_feature_thumb_box( $myhtml, $post_id ) { $selected_option = get_post_meta( $post_id, 'f711_opacity', true ); // get the current value for ( $i = 0; $i <= 1; $i = $i + 0.1 ) { //loop from 0 to 1 in 0.1 increments $selects .= '<option value="' . $i . '" ' . selected( $selected_option, $i, false ) . '>' . $i . '</option>'; //add a option field, and select it if it is the one saved before } //create the return html, with the selects created before return $myhtml .= 'Opacity: <form> <select name="f711_opacity"> ' . $selects . ' </select> </form>'; } // function and action to save the new value to the post function f711_meta_save( $post_id ) { if( isset( $_POST[ 'f711_opacity' ] ) ) { update_post_meta( $post_id, 'f711_opacity', sanitize_text_field( $_POST[ 'f711_opacity' ] ) ); } } add_action( 'save_post', 'f711_meta_save' );