добавьте это в файл functions.php вашей темы:
<?php
// Adds thickbox to all images with a link inside of $content.
// Uses the title attribute in the Media Library.
add_filter('the_content', 'brentini_addthickboxclass');
function brentini_addthickboxclass($content) {
add_thickbox();
$pattern[0] = "/<a(.*?)href=('|\")(.*?).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
$replacement[0] = '<a$1href=$2$3.$4$5 class="thickbox">';
$pattern[1] = "/(<a href=)('|\")([^\>]*?)(\.bmp|\.gif|\.jpg|\.jpeg|\.png)('|\")([^\>]*?)(>)(.*?) title=('|\")(.*?)('|\")(.*?)(<\/a>)/i";
$replacement[1] = '$1$2$3$4$5$6 title=$9$10$11$7$8 title=$9$10$11$12$13';
$pattern[2] = "/(<a href=)('|\")([^\>]*?)(\.bmp|\.gif|\.jpg|\.jpeg|\.png)('|\")([^\>]*?) title=([^\>]*?) title=([^\>]*?)(>)(.*?)(<\/a>)/i";
$replacement[2] = '$1$2$3$4$5$6 title=$7$9$10$11';
$content = preg_replace($pattern, $replacement, $content);
return $content;
}
Это будет работать безупречно, если вы сделаете это именно так. Нет необходимости добавлять все те звонки, которые упоминали другие. В этом нет необходимости, поскольку WordPress изначально включает в себя jquery и Thickbox для использования на серверной части. Так что add_thickbox () - это все, что вам нужно, чтобы вызвать Thickbox в вашей теме. Оставшаяся часть сценария просто добавляет class = "thickbox" к любому изображению внутри $ content и использует атрибут title из библиотеки мультимедиа WordPress.
Если вас интересует скрипт, который включает в себя этот плюс, а также поддержку Thickbox для галерей с навигацией, проверьте его на pastebin .
Для более упрощенной версии, не включающей навигацию, эта в pastebin использует jquery для добавления класса Thickbox в галереи.