Intereting Posts
Есть ли какой-либо инструмент для поиска строк кодов, ответственных за создание интерфейсных HTML-элементов? shortcode, заставляющий the_content () возвращать пустое? Список категорий для пользовательских типов сообщений – WordPress используя подход ООП для создания плагина, но застревает при создании гиперссылок Поиск магазинов (пользовательское поле почтового индекса) в течение 5, 10, 15 миль от введенного пользователем почтового индекса. Изменение кода Случайная ошибка 404 для WP Согласование типов содержимого базы данных с типами PHP Проблема с Multisite и SSL Как мне управлять публикацией пользователей перед публикацией? Просмотр / редактирование веб-сайта Multisite после истечения срока действия домена Несколько значений, хранящихся в массиве в мета-запросе Как исключить короткий код из определенных идентификаторов страниц, если он установлен на глобальный Как получить бесплатную доставку для членов WooCommerce Membership динамически создавать функции обратного вызова внутри цикла for get_header_image () вызывает проблему с приоритетом видимого содержимого в странице Speed ​​Insights

Как использовать WP, встроенный в Thickbox для изображений?

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

<?php if (!is_admin()){ /* add a word found in your domain name */ $mydomain = ".com"; /* The css selector .entry-content a img */ $myselector = "pa img"; wp_enqueue_style('thickbox'); //include thickbox .css wp_enqueue_script('jquery'); //include jQuery wp_enqueue_script('thickbox'); //include Thickbox jQuery plugin // Function that will write js function thickbox_js(){ global $mydomain, $myselector; ?> <script type='text/javascript'> var tb_closeImage = "<?php bloginfo('wpurl'); ?>/wp-includes/js/thickbox/tb-close.png"; var tb_pathToImage = "<?php bloginfo('wpurl'); ?>/wp-includes/js/thickbox/loadingAnimation.gif"; jQuery(document).ready(function() { jQuery("<?php echo $myselector; ?>").parent("a[href*=<?php echo $mydomain; ?>]").addClass("thickbox"); }); </script> <?php } add_action('wp_footer', 'thickbox_js'); // use wp_footer hook to write our generated javascript into page footer. } ?> 

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

Чтобы быть более конкретным, речь идет о той части:

 <?php bloginfo('wpurl'); ?> 

Что я сейчас использую:

 <?php function add_themescript(){ if(!is_admin()){ wp_enqueue_script('thickbox',null,array('jquery')); wp_enqueue_style('thickbox.css', '/'.WPINC.'/js/thickbox/thickbox.css', null, '1.0'); } } add_action('init','add_themescript'); define("IMAGE_FILETYPE", "(bmp|gif|jpeg|jpg|png)", true); function wp_thickbox($string) { $pattern = '/(<a(.*?)href="([^"]*.)'.IMAGE_FILETYPE.'"(.*?)><img)/ie'; $replacement = 'stripslashes(strstr("\2\5","rel=") ? "\1" : "<a\2href=\"\3\4\"\5 class=\"thickbox\"><img")'; return preg_replace($pattern, $replacement, $string); } function wp_thickbox_rel( $attachment_link ) { $attachment_link = str_replace( 'a href' , 'a rel="thickbox-gallery" class="thickbox" href' , $attachment_link ); return $attachment_link; } add_filter('the_content', 'wp_thickbox'); add_filter('wp_get_attachment_link' , 'wp_thickbox_rel'); ?> 

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

Solutions Collecting From Web of "Как использовать WP, встроенный в Thickbox для изображений?"

Что делать, если вы попытаетесь добавить это в свои функции. Php

 function tb(){ wp_enqueue_script('thickbox',null,array('jquery')); wp_enqueue_style('thickbox.css', '/'.WPINC.'/js/thickbox/thickbox.css', null, '1.0'); } add_action('wp_enqueue_scripts','tb'); 

и сохраняя ваш бит jQuery (не уверен, что вам нужны эти переменные php):

  jQuery(document).ready(function() { jQuery("img").parent("a").addClass("thickbox"); }); 

Принятый ответ выше немного устарел, и с тех пор стало намного проще добавить галерею Thickbox на сайты WordPress по умолчанию.

1: Enqueue thickbox JS и CSS

Теперь это можно сделать довольно легко, используя встроенные дескрипторы WordPress:

 add_action( 'wp_enqueue_scripts', 'wpse25112_scripts' ); function wpse25112_scripts(){ // enqueue the thickbox scripts and styles wp_enqueue_script( 'thickbox' ); wp_enqueue_style( 'thickbox' ); // enqueue your own JavaScript wp_enqueue_script( 'my-thickbox-script', 'path/to/my-thickbox-script.js', array( 'jquery', 'thickbox' ), '1.0.0' ); } 

2: Активируйте Thickbox на изображениях галереи WordPress

Это можно сделать, используя бит jQuery внутри вашего пользовательского файла JavaScript, который мы установили в указанном выше фрагменте кода:

 ;jQuery(function($){ $(".gallery a").addClass("thickbox"); }); 

Это гарантирует, что мы добавим только функциональность Thickbox к изображениям галереи WordPress (не каждый img завернутый в тег, как в других примерах).

3: Создайте свою галерею

Это делается с помощью кнопки WordPress Add Media на любой странице или странице. Просто найдите вкладку «Галерея». Важно : убедитесь, что вы выбрали «ссылку на медиафайл», а не «ссылку на вложение», чтобы изображение было правильно всплыло в модуле Thickbox (иначе вместо этого появится ваша веб-страница!).

4: Бонус! Убедитесь, что вы только ставите в очередь этот материал, когда на странице присутствует галерея WordPress.

Это интересная часть. Зачем регистрировать 16K скриптов и CSS (хорошо, это действительно не так много, но все же), когда вам это не нужно? Здесь мы проверяем, есть ли на самом деле [gallery] короткий код где-то в содержимом, прежде чем мы на самом деле запустим что-нибудь …

Измените указанную выше функцию enqueue следующим образом:

 function wpse25112_scripts(){ /** @var WP_Post $post */ $post = get_post(); // Short circuit if something goes wrong if ( ! is_a( $post, 'WP_Post' ) ){ return; } // Does this Post have the default WordPress [gallery] shortcode? if ( preg_match( "/\[\s*gallery(?:\s|\])/i", $post->post_content ) ){ // enqueue the thickbox scripts and styles wp_enqueue_script( 'thickbox' ); wp_enqueue_style( 'thickbox' ); // enqueue your own JavaScript wp_enqueue_script( 'my-thickbox-script', 'path/to/my-thickbox-script.js', array( 'jquery', 'thickbox' ), '1.0.0' ); } }