Отобразите дополнительные шаблоны страницы и боковую панель на сменной активации

Я разрабатываю дочернюю тему прочь Двадцать Двенадцать (1.1), с помощью Wordpress (3.5.1) и плагина Woocommerce (1.6.6).

Я заметил, что проблема с созданием магазина онлайн, страницы единого продукта и страниц таксономии (категории и теги), состоит в том, что это использует свои собственные шаблоны для отображения этих страниц (который может быть настроен), но изменения внесения в другие страницы, такие как контроль, корзина, моя учетная запись и т.д. не будет затронута, потому что на них ссылаются от темы page.php шаблон.

Из-за этого я хотел бы отобразить дополнительные шаблонные страницы для выбора из того, когда плагин Woocommerce активируется в списке Атрибутов Страницы и скрыт/не отображенный иначе.

Например, по умолчанию:

  • Полноширинный
  • Полноширинное право боковой панели
  • Один - В-третьих, столбцы двух третей
  • Три столбца, право боковой панели

И когда Woocommerce активируется:

  • Полноширинный
  • Полноширинное право боковой панели
  • Один - В-третьих, столбцы двух третей
  • Магазин, боковая панель, оставленная <-------
  • Магазин, право боковой панели <-------
  • Три столбца, право боковой панели

Действительно ли это возможно, и может дополнительная боковая панель в меню виджетов (Боковая панель Магазина) также быть созданной на сменной активации?

Спасибо.

0
18.02.2013, 19:26
3 ответа

Вместо того, чтобы использовать шаблоны страницы для определения разметок определите разметки с помощью пользовательского сообщения meta. Пользовательское сообщение meta можно затем показать или не показать с помощью is_plugin_active().

Если Вы собираетесь определить сам шаблон страницы в Теме, то Вы в значительной степени застреваете с выполнением чего-то как определение, если Плагин активен (который, на фронтэнде, должен быть сделан с помощью a function_exists() условное выражение или что-то подобное), и включая шаблон по умолчанию, если нет. Например:

/**
 * Template Name: Shop
 */

if ( ! function_exists( 'some-woocommerce-function' ) ) {
    get_template_part( 'page' );
} else {

// Shop template markup goes here

}

Тот путь, даже если шаблон выбран, он корректно ухудшится.

1
20.02.2020, 00:11

Вы могли добавить область боковой панели после проверки is_plugin_active().

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

0
20.02.2020, 00:11

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

Вы могли изрубить его с JS как так..

// Change woocommerce to whatever the plugin's folder path is
if(!is_plugin_active('woocommerce')) {
    // Create a quick array incase you want to quickly add or change the templates you are removing
    $remove_templates = array('template-number-1.php','template-number-2.php','...');
    ?><script type="text/javascript">
        // jQuery because I don't know anything else
        jQuery(document).ready( function($) {
            <?php foreach($remove_templates as $template) : ?>
                $('#page_template').find('option[value="<?php echo $template ?>"]').remove();
            <?php endforeach; ?>
        }
    </script><?php 
}
0
20.02.2020, 00:11

Теги

Похожие вопросы