メインコンテンツへ移動

キタジマ タカシ

フォーラムへの返信

15件の投稿を表示中 - 7,126 - 7,140件目 (全7,560件中)
  • 投稿者
    投稿
  • 返信先: WP customizer frameworkの使い方について #6789
    アバター画像キタジマ タカシ
    参加者
    2607

    こうする必要は特にありませんか?

    PHPMD で「else 使うな!」と怒られるんで、必要ないときは使わないクセがつきました^^; 挙動は変わらないのでどちらでも好きなほうで良いと思います。

    例えばレイアウトの変更などはスタイルの書き出しではなく、条件分岐で読み込むファイルを変える、もしくはCSSクラスを切り替えるなどの処理が必要になってくると思いますが、そちらの方法に関して何かアドバイスいただければ幸いです。

    カスタマイザーの設定値は get_theme_mod( 'xxx' ); で取得できるので、その値で分岐させたりすることになりますね。例えば、

    $output_description = get_theme_mod( 'output-description' );
    if ( true === $output_description ) {
      // description を出力
    }

    みたいな。

    0
    Who liked: No user
    返信先: WP customizer frameworkの使い方について #6787
    アバター画像キタジマ タカシ
    参加者
    2607

    項目ごとに分割する方法

    Snow Monkey がとっている方法です。項目が多くて1ファイルだとすごく長くなってしまうので、各パネル、各セクション、各コントロールごとにファイルを分割し、それぞれ include する、という方法をとっています。

    // snow-monkey/functions.php
    
    use Inc2734\Mimizuku_Core\Helper;
    
    $includes = [
    	'/app/customizer',
    ];
    foreach ( $includes as $include ) {
    	Helper\load_theme_files( __DIR__ . $include );
    }

    上記のコードが app/customizer の中にある各カスタマイザーの項目(パネル、セクション、コントロール)を読み込む、という処理になります。Inc2734\Mimizuku_Core\Helper\load_theme_files というメソッドで読み込んでいますが、これは inc2734/mimizuku-core というライブラリの中で定義された関数なので、WP Customizer Framework だけを使いたい場合は使用できません。なので、うーん、ちょっとめんどうですが、1ファイルずつ include させるのが簡単かもしれません。こんな感じ。読み込み順番は、パネル、セクション、コントロールになるようにする必要があります(多分そうしないと未定義でコケちゃう)。

    include_once ( get_template_directory() . '/app/customizer/design/panel.php' );
    include_once ( get_template_directory() . '/app/customizer/design/sections/base-design/section.php' );
    include_once ( get_template_directory() . '/app/customizer/design/sections/base-design/controls/accent-color.php' );
    include_once ( get_template_directory() . '/app/customizer/design/sections/base-design/controls/base-font-size.php' );
    include_once ( get_template_directory() . '/app/customizer/layout/panel.php' );
    include_once ( get_template_directory() . '/app/customizer/layout/sections/header/section.php' );
    include_once ( get_template_directory() . '/app/customizer/layout/sections/header/controls/header-layout.php' );

    あとは、Snow Monkey のファイルを参考に見てもらえればと思います。

    次に、スタイルの定義についてです。これは snow-monkey/app/setup/customizer-styles.php で各スタイル定義用のファイルを読み込んでいます。こちらも inc2734/mimizuku-core のメソッドを使ったりしているので、単純化すると下記のような感じです。

    add_action(
    	'wp_loaded',
    	function() {
    		include_once( get_template_directory() . '/assets/css/foundation/_body/_body.php' );
    		include_once( get_template_directory() . '/assets/css/object/component/_btn/_btn.php' );
    		...
    	},
    	11 // この数字は Snow Monkey デザインスキンを動作させる都合で必要なものなので、なくても構いません
    );

    /assets/css/foundation/_body/_body.php などのコードは Snow Monkey のファイルを参考にしてみてください。


    わからない、動かない、などあればお気軽に書き込みどうぞ!

    0
    Who liked: No user
    返信先: WP customizer frameworkの使い方について #6785
    アバター画像キタジマ タカシ
    参加者
    2607

    項目を増やしていく方法には、大きく分けて2パターンあると思います。1つは単純に1ファイルに追加していく方法、もう一つは Snow Monkey のように項目ごとに分割する方法です。それぞれにサンプルを書いてみますね。

    基本的な考え方

    あえて書く必要はないのかもしれませんが、理解しておいたほうがわかりやすいかなと思いますので、まず基本的な考え方を書いておきます。

    「パネルの中のセクションの中のコントロール」という考え方ではなくて、「独立したコントロール、セクション、パネルがそれぞれあり、コントロールをどのセクションに属させるか、セクションをどのパネルに属させるかを定義する」と考えてください。

    単純な方法

    では、まず1ファイルに書いていく方法です。

    $customizer = \Inc2734\WP_Customizer_Framework\Customizer_Framework::init();
    
    $customizer->panel( 'design', [ ... ] );
    $customizer->section( 'base-design', [ ... ] );
    $customizer->control( 'color', 'accent-color', [ ... ] );
    $customizer->control( 'number', 'base-font-size', [ ... ] );
    
    if ( is_customize_preview() ) {
    	$panel_design           = $customizer->get_panel( 'design' );
    	$section_base_design    = $customizer->get_section( 'base-design' );
    	
    	$control_accent_color = $customizer->get_control( 'accent-color' );
    	$control_accent_color->join( $section_base_design )->join( $panel_design );
    	
    	$control_base_font_size = $customizer->get_control( 'base-font-size' );
    	$control_base_font_size->join( $section_base_design )->join( $panel_design );
    }
    
    $customizer->panel( 'layout', [ ... ] );
    $customizer->section( 'header', [ ... ] );
    $customizer->control( 'select', 'header-layout', [ ... ] );
    
    if ( is_customize_preview() ) {
    	$panel_layout   = $customizer->get_panel( 'layout' );
    	$section_header = $customizer->get_section( 'header' );
    	
    	$control_header_layout = $customizer->get_control( 'header-layout' );
    	$control_header_layout->join( $section_header )->join( $panel_layout );
    }
    add_action( 'wp_loaded', function() {
    	$customizer = \Inc2734\WP_Customizer_Framework\Customizer_Framework::init();
    	$cfs = $customizer->styles();
    
    	$accent_color = get_theme_mod( 'accent-color' );
    
    	// accent-color を使ったスタイルの定義を書く
    	$cfs->register( ... );
    
    	// base-font-size を使ったスタイル定義を書く
    	$cfs->register( ... );
    });

    移動中に書いていて実際に試せていないので構文エラーなどがあるかもしれません、その際は適宜修正してください…(すみません><)。

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    v4.4.5 で修正しました!

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    あ!!ほんとだ、すみません!

    とりあえずの対策ですが、/app/public/wp-content/themes/snow-monkey/app/setup/dependency/elementor.php の、if ( ! defined( 'ELEMENTOR_VERSION' ) ) { の上の行に use Inc2734\Mimizuku_Core\Helper; と入れていただくと解決するかと!

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    自由入力はちょっとむずかしいので、やるとしたら選択肢を増やすパターンですかね。25%、50% を追加は構造上スマートにできます。

    もっと自由に調整したい場合は、ブロックのインスペクタ(選択するとページ右側にでる設定パネル)に独自の CSS クラスを入力できる欄があるので、そこに適当なクラスをふって、子テーマや追加 CSS でそのクラスを使ってサイズを調整する方法もありますね。

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    v4.4.1 ためしてみてください!

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    ただこれ、次に開いたときにビジュアルエディタで開いちゃうと、勝手に改行されちゃうんですよね(そして
    タグも消されてしまう…)

    ありゃそうなんですね。いま試してみていて、うまくいきそうなので、もうすぐアップデートできると思います。しばしおまちください…

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    あーなるほどです。タグを削除して目次に入れる処理をしているのですが、改行コードは削除してなかったので、その分が空白として画面表示されちゃうみたいですね。

    ちょっと改行コードもきれいに消せるように修正できるか試してみようと思いますが、それまでのとりあえずの対策として、ビジュアルモードじゃなくてテキストモードに切り替えて「365日ずっと綺麗な<br>髪でいたい!」と、改行をけして1行にしてみると空白がなくなるかもしれません。可能であれば試されてみてください!

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    早速確認ありがとうございます。動作したとのことで良かったです!

    クローズも助かります!

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    早速確認ありがとうございます。動作したとのことで良かったです!

    クローズも助かります!

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    v4.4.0 から、下記のコードで制御できるようになります。来週月曜リリース予定です!

    add_filter(
        'inc2734_wp_awesome_widgets_taxonomy_posts_widget_args',
        function( $args ) {
            if ( is_singular() ) {
                $args['post__not_in'] = [ get_the_ID() ];
                $args['orderby'] = 'name';
            }
            return $args;
        }
    );
    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    「WPAW: 任意のタクソノミーの投稿ウジェット」は現状、条件をカスタマイズするためのフックがないんです…。v4.4.0 のアップデートにあわせて組み込もうと思いますのでしばしお待ちいただければと思います!

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    おお、そうですか…。報告いただいて修正した筈なんですがなんでかな…。よろしければ、そのページの URL を教えてもらえませんか?

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2607

    v4.4.0 ベータ5をお使いでしょうか?

    0
    Who liked: No user
15件の投稿を表示中 - 7,126 - 7,140件目 (全7,560件中)

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。