Intereting Posts
Permalinks Question: Добавление префикса ТОЛЬКО к сообщениям Настройка содержимого TinyMCE в wp_editor Бутстрап dropdown Nav таблетки, не работающие с wp_nav_menu () Получить новое значение массива элементы галереи водяных знаков Цикл для сопоставления таксономических терминов для «связанных» постов? Исключить внутренние ссылки из модерации комментариев? Заказ по мета-значению (числовое значение ниже до более высокого) ссылка на одну самую последнюю запись, независимо от категории Как проверить основной блог в многопользовательском режиме с помощью оператора if? Создание альтернативных местоположений контекста мета-поля как создать виджет, созданный на основе темы, который может быть опущен в панель или нижний колонтитул Как сделать многоколоночную интересную домашнюю страницу в Weaver 2010? Показать сообщения с тегом только для пользовательских сообщений Лучше ли хранить изображения и другие файлы в корневом каталоге или в каталоге тем

Запустите javascript при успешном наборе признака

Я смотрю на « Цветной вор» против выбранного изображения, когда он установлен или обновлен. Кажется, я не могу найти способ подключиться к этому событию.

В настоящее время я делаю то, что я чувствую, немного взломанный

jQuery(document).on('click', '#__wp-uploader-id-2 .media-toolbar-primary', function(event){ setTimeout(function() { var image = new Image(); image.src = 'image.jpg'; var colorThief = new ColorThief(); var dominantColor = colorThief.getColor(image); console.log(dominantColor); }, 100); }); 

Должен быть лучший способ?

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

 function pom_image_box() { remove_meta_box('postimagediv', 'artist', 'side'); add_meta_box('postimagediv', __('POM Image'), __NAMESPACE__ .'\\pom_post_thumbnail_meta_box', 'artist', 'normal', 'high'); } add_action('do_meta_boxes', __NAMESPACE__ .'\\pom_image_box'); function pom_post_thumbnail_meta_box( $post ) { $thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true ); echo _pom_wp_post_thumbnail_html( $thumbnail_id, $post->ID ); } function _pom_wp_post_thumbnail_html( $thumbnail_id = null, $post = null ) { global $content_width, $_wp_additional_image_sizes; $post = get_post( $post ); $upload_iframe_src = esc_url( get_upload_iframe_src('image', $post->ID ) ); $set_thumbnail_link = '<p class="hide-if-no-js"><a title="' . esc_attr__( 'Set featured image' ) . '" href="%s" id="set-post-thumbnail" class="thickbox">%s</a></p>'; $content = sprintf( $set_thumbnail_link, $upload_iframe_src, esc_html__( 'Set featured image' ) ); if ( $thumbnail_id && get_post( $thumbnail_id ) ) { $old_content_width = $content_width; $content_width = 266; if ( !isset( $_wp_additional_image_sizes['post-thumbnail'] ) ) $thumbnail_html = wp_get_attachment_image( $thumbnail_id, array( $content_width, $content_width ) ); else $thumbnail_html = wp_get_attachment_image( $thumbnail_id, 'post-thumbnail' ); if ( !empty( $thumbnail_html ) ) { $ajax_nonce = wp_create_nonce( 'set_post_thumbnail-' . $post->ID ); $content = sprintf( $set_thumbnail_link, $upload_iframe_src, $thumbnail_html ); $content .= '<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail" onclick="WPRemoveThumbnail(\'' . $ajax_nonce . '\');return false;">' . esc_html__( 'Remove featured image' ) . '</a></p>'; } $content_width = $old_content_width; } /** * Filter the admin post thumbnail HTML markup to return. * * @since 2.9.0 * * @param string $content Admin post thumbnail HTML markup. * @param int $post_id Post ID. */ return apply_filters( 'admin_post_thumbnail_html', $content, $post->ID ); } 

Не уверен, где я могу идти отсюда, я не нашел точно, где wpsetAsThumbnail . И даже если я это сделаю. Я пробовал модифицировать set-post-thumbnail.js, но мои console.log не отображались.

Я также пробовал https://wordpress.stackexchange.com/a/74596/2830 (с обновленным кодом, так как он изменен с 2012 года). Но это полностью нарушает функциональность изображения.

Вы можете использовать .ajaxComplete , как упоминалось в @onetrickpony в https://wordpress.stackexchange.com/a/36597/57034 , за исключением того, что вы делаете это глобально на документе, как указано в http://api.jquery.com/ajaxcomplete/ , затем фильтруйте на основе действия:

 add_action( 'admin_print_footer_scripts', function () { ?> <script type="text/javascript"> jQuery(function ($) { $(document).ajaxComplete(function (event, xhr, settings) { var match; if (typeof settings.data === 'string' && /action=set-post-thumbnail/.test(settings.data) && xhr.responseJSON && typeof xhr.responseJSON.data === 'string') { match = /<img[^>]+src="([^"]+)"/.exec(xhr.responseJSON.data); if (match !== null) { var image = new Image(); $(image).load(function () { var colorThief = new ColorThief(); var dominantColor = colorThief.getColor(image); console.log(dominantColor); }); image.src = match[1]; } } }); }); </script> <?php } );