Intereting Posts
Встраивать shortcode в wordpress ajax request Добавление общего содержимого страницы в шаблоны страниц крюк действия, когда сообщение достигает определенного количества просмотров Установка значения сеанса с Ajax не работает как настроить субдомены для страниц? Только запрос Сообщения из обеих двух категорий? Почему фильтры / действия требуют подсчета аргументов? Получить объект для нескольких выбранных таксономий Как проанализировать новые пользовательские данные из WordPress на стороннее CRM-программное обеспечение? Как изменить название мета-поля в указанном настраиваемом типе сообщений? Могу ли я создать галерею NextGen из галереи WordPress Переадресация HTML на страницы WP Не удалось просмотреть отдельную запись, которая была на моем веб-сайте Модификация TinyMCE js и WordPress PHP? Практическое руководство. Избегайте кучи ненужных записей Auto Draft ID, связанных с таблицей сообщений, и отключите функцию автосохранения в post-new.php?

Как использовать 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' ); } }