Intereting Posts
Как установить post_id в 0 при загрузке изображения с помощью кнопки Добавить медиа. (асинхронный-upload.php) Привет, я пытаюсь установить сообщение в течение 24 часов, и с ним будет изменено Как петля в петле (покажите детей, а затем внуков) Создать сообщение, могут ли авторы быть заказаны по фамилии? Задайте пользовательский идентификатор для выбора пользовательской функции walker элемента Пропустить исходный URL через перенаправление входа Невозможно создать новое сообщение в пользовательском типе сообщения Изменить поле редактирования заголовка сообщения Исключить категорию из WP_Query Пользовательский короткий код регистрации пользователя – проблема с заголовком перенаправления Wp_query возвращает только одно сообщение, а запрос через ajax Параметры запроса в $ _GET не соответствуют URL-адресу, названному Главная страница блога работает, но название говорит, что страница не найдена Удерживайте комментарий в очереди, если он содержит или другие ссылки WP_MEMORY_LIMIT не работал в wp-config

Создание пользовательских настроек при добавлении всплывающего окна

Я создаю флажок на всплывающем экране Add Media, чтобы добавить HTML в вывод $html при вставке изображения.

Это работает нормально. Однако, как только я добавил изображение с выбранным флажком. Если я попытаюсь добавить его снова и снимите флажок, он не зарегистрирует и не сохранит это изменение.

Таким образом, всегда выводится измененное изображение вместо возврата к стандарту WP по умолчанию, если он не установлен.

Плюс галочка после того, как я ее выбрал и вставил на страницу, будет всегда выбираться каждый раз, когда я выбираю это изображение.

Как я могу сделать функцию флажка unselect, как и следовало ожидать?

Очень ценю помощь. благодаря

  class media_uploader_cb{ function __construct(){ // attach our function to the correct hook add_filter('attachment_fields_to_edit', array( $this, 'attachment_fields_to_edit' ), 10, 2); //save attachment field add_filter( 'attachment_fields_to_save', array( $this, 'attachment_fields_to_save' ), 10, 2); //add custom css class add_filter( 'media_send_to_editor', array( $this, 'media_send_to_editor' ), 10, 2 ); } /** * Adding our custom checkbox field to the $form_fields array * * @param array $form_fields * @param object $post * @return array */ function attachment_fields_to_edit($form_fields, $post) { $form_fields['add_class']['label'] = __("Add SEO Data"); $form_fields['add_class']['input'] = 'html'; $form_fields['add_class']['html'] = '<input type="checkbox" value="1" name="attachments['.$post->ID.'][add_class]" id="attachments['.$post->ID.'][add_class]" '.checked( 1, get_post_meta($post->ID, 'add_class', true), false ).'/>'; return $form_fields; } /** * Saving our custom checkbox field * @param array $post * @param array $attachment * @return array */ function attachment_fields_to_save($post, $attachment) { if( isset($attachment['add_class']) ){ update_post_meta($post['ID'], 'add_class', $attachment['add_class']); } return $post; } /** * Adding our custom css class based on checkbox field * * @param string $html * @param int $id * @return string */ function media_send_to_editor( $html, $id ) { //only add class if the checkbox was checked if ( 1 == (int)get_post_meta($id, 'add_class', true) ){ //change this to whatever you want $seo_data_to_add = 'custom="HTML Output Here""'; // THIS SHOULD BE THE CHECKBOX get_post_meta($id, 'add_class', true); $attachment_title = get_the_title($id); $title = 'title="'.$attachment_title .' by '. get_option('ews_opt_branding') .'"'; $html = str_replace('<img', '<img '.$title.' '.$seo_data_to_add.'', $html); } return $html; } } new media_uploader_cb(); 

Solutions Collecting From Web of "Создание пользовательских настроек при добавлении всплывающего окна"

Получил некоторую помощь от другого форума. Это вызвало некоторый мозговой штурм в офисе, и мы придумали решение. Не уверен, что это лучший способ его решения, но он работает так, как ожидалось. Я добавил этот код:

delete_post_meta($id, 'add_class', true);

чуть выше:

return $html;

в конце последней функции, и все ведет себя правильно. Если есть лучшее решение, сообщите мне.