Wordpress. Заменить путь своим плагином.

F
На сайте с 01.07.2009
Offline
79
852

Добрый день! С wordpress начал работать не давно, но появилась задача с которой не могу справиться. Точнее справился, но только с помощью jquery+ajax.

Мне необходимо заменить путь до шаблона внутри темы с помощью своего плагина. В файле шаблона темы есть такая строка:

get_template_part(junotoys_get_file_slug('templates/headers/_parts/contact-info-cart.php'));

С помощью своего плагина мне необходимо заменить путь на свой (PLUGIN_DIR.'/template/new_template.php'), чтобы отобразить свой шаблон. Понятное дело, что можно сделать это вручную, либо с помощью ajax, но я бы хотел использовать подмену пути. Это возможно? Есть такие функции? Смотрел в строну template_include, не помогло.

adel92
На сайте с 04.01.2012
Offline
334
#1

Возможно это Вам поможет:

https://wp-kama.ru/function/get_template_directory_uri

NVMe VDS (https://well-web.net/nvme-vps) с поддержкой 24/7 - от 545 руб.! Безлимитный хостинг (https://well-web.net/ssd-hosting) - от 129 руб.! Домен в подарок! Перенос бесплатно! Заказывайте сейчас, и получите скидку 50%! Заходи! (https://well-web.net/limited-offers)
F
На сайте с 01.07.2009
Offline
79
#2
adel92:
Возможно это Вам поможет:

https://wp-kama.ru/function/get_template_directory_uri

Данная функция отображает путь до темы. Не подходит.

Решение нашёл. У функции get_template_part() есть хук get_template_part_{$slug}. С помощью этого хука можно выполнить условие, если в пути есть "templates/headers/_parts/contact-info-cart.php".

SeVlad
На сайте с 03.11.2008
Offline
1609
#3
fiper:
С помощью своего плагина мне необходимо заменить путь на свой

http://onwp.ru/razrabotka-plaginov/svoj-shablon-zapisisingle-dlya-plagina-v-wordpress.html только тут с константами перебор ИМХО :)

https://wp-kama.ru/id_5177/3-sposoba-sozdat-shablon-stranitsyi.html - см 3й способ.

Ещё один - в плагине сделать копирование своего шаблона в активную тему. Как это сделано напр в woocommerce, но можно(лучше) добавить кнопку в админке для копирования. Имя шаблона ессно, не должно совпадать со стандартным, и должно соблюдать правила именования оных.

ЗЫ. И не нужно писать во всех топиках.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
F
На сайте с 01.07.2009
Offline
79
#4
SeVlad:
http://onwp.ru/razrabotka-plaginov/svoj-shablon-zapisisingle-dlya-plagina-v-wordpress.html только тут с константами перебор ИМХО :)

https://wp-kama.ru/id_5177/3-sposoba-sozdat-shablon-stranitsyi.html - см 3й способ.

Ещё один - в плагине сделать копирование своего шаблона в активную тему. Как это сделано напр в woocommerce, но можно(лучше) добавить кнопку в админке для копирования. Имя шаблона ессно, не должно совпадать со стандартным, и должно соблюдать правила именования оных.

ЗЫ. И не нужно писать во всех топиках.

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

Пока остановился на вот этом варианте, но выводится сразу два шаблона. Мой, и тот который грузит тема.

add_filter( 'get_template_part_templates/headers/_parts/contact-info-cart', array($this,'new_template'));


function new_template($slug,$name){

if($slug=='templates/headers/_parts/contact-info-cart'){

load_template(RMCT__PLUGIN_DIR . 'incl/cart_template.php');


}

}

Только что в голову пришла ещё одна идея! Переименовать текущий шаблон на contact-info-cart-old.php, и скопировать в папку с шаблоном свой вариант.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий