Intereting Posts
Расширить класс плагина Как изменить описание одного и того же изображения, которое можно найти в нескольких экземплярах? Смещение блога главной страницы одним сообщением WordPress Multisite Network заменит 3 отдельных установки WordPress Пользовательские типы сообщений, плагины, архивы и плагины для SEO Запрос сообщений по пользовательскому полю 'Цена' Как установить статус по умолчанию для настраиваемого типа сообщения add_filter: Передача массива вместо функции обратного вызова? Обновление пользовательского поля с помощью формы переднего конца Как создать мета-поле, которое можно повторить? (с разделом изображения и текстовой областью) Включение виджета по умолчанию в пользовательской теме Как добавить настраиваемый шаблон в плагин? Захват YouTube Thumbnail ПОСЛЕ почты? Удаление опции сортировки для столбцов на странице списков сообщений Фильтр Автор Bio

Функция: Добавить ссылку на / внутри div

Я ищу, чтобы создать функцию, которая добавит ссылку на div (или заменит div на div и ссылку – в простой, я пытаюсь создать плагин, который превратит изображение заголовка в интерактивную ссылку без редактирование кода).

Возможно, я собираюсь сделать это неправильно, но путь, который я выбрал, был str_replace. Я надеялся, что что-то вроде этого будет работать:

$content = str_replace('<div class="header-object">', '<div class="header-object"><a href=”<?php bloginfo('siteurl'); ?>”></a>, '<div class="header-object">'; 

Изображение вызывается через класс css-header-object. Таким образом, это весь div минус конечный вызов. Этот код даже не приближается к работе (даже как редактирование кода header.php). Есть предположения?

Solutions Collecting From Web of "Функция: Добавить ссылку на / внутри div"

Почему бы не сделать это с помощью jQuery? Это было бы очень просто, вот пример, если у вас есть средство, чтобы URL-адрес блога в код jQuery:

 jQuery(document).ready(function(){ jQuery('.header-object img').wrap('<a href="#blog url here#"></a>'); }); 

Это будет охватывать теги <a> вокруг изображения внутри класса .header-object .

Чтобы реализовать это в вашем коде, он запускается как скрипт:

 <script type="text/javascript"> jQuery(document).ready(function(){ jQuery('.header-object img').wrap('<a href="#blog url here#"></a>'); }); </script> 

Вы можете поместить это в любом месте, но рекомендуется поместить его в <head> . Если вы поместили его в главный тег (а не вставляете его в wp_enqueue_script ), вы можете использовать <?php echo home_url(); ?> <?php echo home_url(); ?> вместо #blog url here# .

Таким образом, это будет выглядеть в вашем PHP-файле внутри <head> . Вам также нужно будет включить jQuery, поэтому я добавил дополнительный <script> для этого, он абсолютно необходим при запуске любого jQuery (если ваша тема еще не загружена jQuery!):

(Прочтите мое редактирование ниже этого кода!)

 <!DOCTYPE html> <html> <head> <title>Untitled Document</title> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function(){ jQuery('.header-object img').wrap('<a href="<?php echo home_url(); ?>"></a>'); }); </script> </head> <body> <div class="header-object"> <img src="" /> </div> </body> </html> 

РЕДАКТИРОВАТЬ

Вышесказанное является чрезвычайно простым примером, который поможет вам понять, что вам нужно сделать, это использовать то, что WP уже имеет для вас. Использование wp_enqueue_scripts в файле functions.php . Предполагая, что вы используете базовую тему, которая еще не вставляет в очередь jQuery И никаких плагинов, которые вставляют в очередь jQuery, будет работать следующий код.

Возьмите код jQuery, который обертывает изображение в тегах <a> и помещает его в файл с именем anything.js в папке вашей темы, в этом примере это будут themes/yourtheme/js/wrapheaderimg.js – обратите внимание, что <?php echo home_url(); ?> <?php echo home_url(); ?> не будет работать здесь, потому что это не файл PHP.

Второй открыть (или создать его, если он не существует) functions.php в каталоге вашей темы, а следующий код должен автоматически добавить скрипты, необходимые в <head> :

 function my_enqueue_scripts(){ // enqueue jQuery (already included in WP) wp_enqueue_script( 'jquery' ); // register and enqueue your custom .js file wp_register_script( 'wrapheaderimg', get_bloginfo( 'template_url' ) . '/js/wrapheaderimg.js' ); wp_enqueue_script( 'wrapheaderimg' ); } add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts' ); 

Теперь помните, что echo home_url(); не будет работать в этом .js-файле, поэтому, если вы просто используете это для себя, считая, что URL-адрес всегда будет таким же, вы можете его жестко закодировать, иначе есть другой способ сделать это, но я не знаю если это лучшая практика . Вот оно:

Когда вы вставляете свои скрипты в файл functions.php , расширение файла не должно быть .js , вы можете сделать это .php пока ваш JS-файл имеет расширение .php и соответствующий заголовок на самой вершине файл:

 <?php header("content-type: application/x-javascript"); ?> 

И затем обратно в functions.php вы можете сделать что-то подобное, чтобы передать URL-адрес блога в файл Javascript:

 /* functions.php */ function my_enqueue_scripts(){ // enqueue jQuery (already registered in WP) wp_enqueue_script( 'jquery' ); // register and enqueue your custom .php Javascript file with blog URL as a paramater $blogurl = urlencode( get_bloginfo( 'template_url' ) ); wp_register_script( 'wrapheaderimg', get_bloginfo( 'template_url' ) . '/js/wrapheaderimg.php?url=' . $blogurl ); wp_enqueue_script( 'wrapheaderimg' ); } add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts' ); 

И теперь, снова в вашем пользовательском файле Javascript PHP, вы можете получить доступ к этой переменной с помощью этого, в основном используя echo $_REQUEST['url']; :

 /* js/wrapheaderimg.php */ <?php header("content-type: application/x-javascript"); $blogurl = urldecode( $_REQUEST['url'] ); ?> jQuery(document).ready(function(){ jQuery('.header-object img').wrap('<a href="<?php echo $blogurl; ?>"></a>'); }); 

Надеюсь это поможет.