Intereting Posts
Пользовательский тип сообщения и проблема с permalink Интеграция подвижной карусели в wordpress: как написать функцию ajax_callback Есть ли способ закрепить записи? Обратный вызов в WordPress Проводка с помощью slug «favicon» перенаправляется Создайте статический HTML-сайт из WordPress Как назначить результаты переменным? Как перенаправить домашнюю страницу на пользовательскую страницу? Не удается упорядочить результат запроса как заданный массив идентификаторов сообщений Возможно ли запланировать редактирование страницы, чтобы перейти в прямом эфире на определенную дату? Как передать параметр url в поисковом запросе Рекомендации по использованию пользовательских типов сообщений Создать список сообщений с заголовками тем Как запросить мои сообщения WordPress на другой странице HTML с помощью WordPress Restful API? Функция определения меню WordPress Admin – это отдельный файл

Сначала загрузите шаблоны WooCommerce из моей папки плагина

Я пытаюсь написать плагин для WooCommerce ( https://github.com/bassjobsen/woocommerce-twitterbootstrap ). Я хочу, чтобы мои шаблоны загружались следующим образом:

  1. моя настраиваемая тема / путь к шаблону / имя шаблона
  2. моя специальная тема / шаблон
  3. мое имя плагина / шаблона
  4. woocommerce / имя шаблона

Поэтому, когда шаблон не существует в папке темы, это загрузка из моей папки плагина (если существует) вместо папки Woocommece. На http://www.skyverge.com/blog/override-woocommerce-template-file-within-a-plugin/, если найдено рабочее решение для загрузки шаблонов с помощью woocommerce_get_template . Но это не сработает для woocommerce_get_template_part вызывать эту функцию вместо locate_template вместо woocommerce_locate_template (это ошибка?).

Вопрос: Я хочу знать, как перезаписывать / манипулировать locate_template() поэтому locate_template() пытаюсь загрузить файлы из моей папки плагина. Или любое другое решение для этого.

обновление благодаря шаблонам загрузки @jesper i cloud load:

 function my_template_redirect(){ //pages you want to make true, ex. is_shop() global $woocommerce; if(is_shop()) { $plugin_dir = WP_PLUGIN_DIR.'/'.str_replace( basename( __FILE__), "", plugin_basename(__FILE__) ); var_dump($plugin_dir); load_template($plugin_dir . '/templates/archive-product.php'); } } add_action('template_redirect','my_template_redirect'); 

/templates/archive-product.php включает content-product.php из одного и того же файла шаблона плагина. content-product.php использует global $product который в этом случае является нулевым. Нужно ли загружать другую функцию для установки $product ?

Вышеупомянутая также дает мою другую ошибку: PHP Warning: call_user_func_array () ожидает, что параметр 1 будет действительным обратным вызовом, функция «woocommerce_before_main_content_grid» не найдена или недействительна имени функции в / home / bass / Dropbox / testomgeving / jamedotheme / wordpress / wp- включает / plugin.php

С приведенным выше кодом я мог бы написать функцию условного включения файлов в шаблоны / archive-product.php ( так решено! )

Solutions Collecting From Web of "Сначала загрузите шаблоны WooCommerce из моей папки плагина"

Я думаю, вы можете использовать действие перенаправления шаблонов .

Я не тестирую его, но он должен работать:

 function my_template_redirect(){ //pages you want to make true, ex. is_shop() if(is_shop()) { $plugin_dir = WP_PLUGIN_DIR.'/'.str_replace( basename( __FILE__), "", plugin_basename(__FILE__) ); load_template($plugin_dir . 'your-template.php'); } } add_action('template_redirect','my_template_redirect');