テーマカスタマイザが色やサイズなどを変更するテーマを作成しています。また、カテゴリとそのカテゴリを具体的に選択するオプションもあります。
デフォルトで表示されるデフォルトのホーム/フロントページの代わりに、どのようにしてそのカテゴリをプレビューに表示することができますか(ユーザーが対応するオプションを変更している場合のみ)。
編集
私は customize_preview_init でプレビューウィンドウにアクセスできますが、 wp_redirect を適用することはできません。
私はこの解決策になった:
テーマプレビューでのみフックを含む追加ファイルを要求する
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);
ライブプレビューでのみアクティブにするJavaScriptを追加してリダイレクトするだけです。 http://www.jquery4u.com/snippets/jquery-redirect-web-page/
高度な解決策として、wp.customizeを使用して非同期に機能するjs関数を作成できます。あなたは私のテーマを調べることができます http://theme.firmasite.com/ 使用例。
テーマカスタマイザプレビューアを通してサイトを見ている間に、ユーザにものを見せるために私が使用したアプローチは次のとおりです。
global $wp_customize;
if( is_user_logged_in() && isset($wp_customize) ) {
// Show "categories" or things in the Customizer Previewer only
}
テンプレートはもう少し面倒になりますが、おそらくお気づきかもしれませんが、テーマカスタマイザに関するドキュメントや開発はあまりありません。