Просмотр категории в предварительном просмотре Настройщика тем
Я создаю тему, в которой настройщик тем изменяет цвета, размеры и т. Д., А также имеет возможность выбрать категорию и стиль, которые конкретно относятся к этой категории.
Как я могу отобразить эту категорию в предварительном просмотре (только когда пользователь изменяет соответствующие параметры) вместо домашней/главной страницы по умолчанию, отображаемой по умолчанию?
РЕДАКТИРОВАТЬ
Я могу получить доступ к окну предварительного просмотра с помощью customize_preview_init, но я не могу применить wp_redirect, что, я думаю, может быть способом.
4 answers
Если я правильно понимаю вашу цель, то вы выберете внутри настройщика, там перечислены категории, и пользователь может использовать это для сохранения в настройках вашей темы.
Если вы улучшите настройщик для категорий, то используйте этот класс из этого репозитория здесь. Включите файл и улучшите класс по умолчанию. Вы можете легко реализовать выбор для категорий установки. Внутри readme этого репозитория есть две ссылки на gist с примером использования, но для другой класс РЕПО. Я думаю, что это ясно и одинаково для всех расширений для настройщика.
Вот подход, который я использовал, чтобы показывать что-то пользователям, когда они просматривают сайт через предварительный просмотр настройщика тем:
global $wp_customize;
if( is_user_logged_in() && isset($wp_customize) ) {
// Show "categories" or things in the Customizer Previewer only
}
Это делает ваши шаблоны немного более запутанными, но, как вы, вероятно, обнаружили, в программе настройки тем не так много документации/разработок:/
Просто добавьте javascript, который активируется только в режиме предварительного просмотра и перенаправления: http://www.jquery4u.com/snippets/jquery-redirect-web-page/
В качестве расширенного решения вы можете создать асинхронно работающую функцию js с помощью wp.customize. Вы можете ознакомиться с моей темой http://theme.firmasite.com / для примера использования.
Я пришел к такому решению:
1. Требуется дополнительный файл, который будет содержать крючки только в предварительном просмотре темы
function mytheme_customizer_live_preview() {
require_once('library/preview.php');
}
add_action( 'customize_preview_init', 'mytheme_customizer_live_preview' );
2. Что мне нужно было сделать, так это изменить запрос, как я обычно делаю на странице, поэтому просто сделайте это в предварительном просмотре (внутри preview.php ):
function modify_query($query) {
$category = get_theme_mod( 'mytheme' )['categories'][0];
$query->set('cat', $category);
return $query;
}
add_filter('pre_get_posts', 'modify_query', 10);