Intereting Posts
Что означает, что «означает, что ваша тема является тегом заголовка и нижнего колонтитула WordPress»? Установить порядок предметов с помощью wp_nav_menu _ {$ menu-> slug} _items Добавить видео на страницу входа в WordPress Мои постоянные ссылки на все страницы и сообщения теперь включают старые названия страниц в качестве родителей / категорий WP_Query – заказывать результаты по метаоценке Сила включает таблицу стилей из родительской темы Категория пользовательских сообщений Обработка формы входа / регистрации перед визуализацией коротких кодов? Поиск страниц, которые являются дочерними элементами текущей страницы Проверьте, является ли текущее сообщение последним (не последним) Как построить многотаксономический многопользовательский запрос на основе пользовательского ввода Показать автора в пользовательской rss-ленте Customizer_register не сохраняет пользовательские настройки в базе данных Ошибка разрешений Какая функция вызывается после обновления любого поля пользователя из любого места сайта

Функция: Добавить ссылку на / внутри 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>'); }); 

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