• 解決済 nrmy

    (@nrmy)


    お世話になります。

    現在作成/編集中のものが投稿か固定ページかによって、編集画面に適用するCSSを、editor-style-post.cssかeditor-style-page.cssに切り替えたいのですが、編集画面において投稿か固定ページかを判別する方法はありますでしょうか。

    (CSSのセレクタで振り分けられるのであれば、それでも大丈夫です)

    お教えいただければ幸いです。

    よろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは

    body の post-type-{投稿タイプ} クラスでセレクトできると思います。

    ただし、エディター スタイル シート(add_editor_style)内では効かない(下記ページ参照)ようなので、別途 CSS を読み込む必要がありそうです。

    https://stackoverflow.com/questions/60115893/wordpress-is-it-possible-to-use-post-type-as-part-of-a-css-selector-in-block-ed

    こんにちは

    @ishitaka さんがすでに解説済みの通りですが、

    以下のように処理した場合には、

    add_editor_style( 'style.css' );
    style.cssに記述したスタイル
    
    .post-type-post .is-root-container{
        border:3px solid red;
    }
    editorで、実際にロードされるスタイル
    .editor-styles-wrapper .post-type-post .is-root-container {
        border: 3px solid red;
    }

    つまり、スタイルは加工されて(.editor-styles-wrapper)ロードされます。

    このため、body.post-type-post, body.post-type-page を参照しようとしても出来なくなる。

    .editor-styles-wrapper の孫要素(つまり、ブロックスタイルは、適用される)ということになります。

    なので、body要素内のクラスを参照する場合には、別の方法でスタイルの加工が入らない方法で処理する必要があります。

    以下のような手法をとることで、加工のないスタイルを追加できます。

    
    add_action( 'enqueue_block_editor_assets', 'emulsion_block_editor_assets' );
    
    function emulsion_block_editor_assets(){
    	wp_register_style( 'emulsion-fse', get_template_directory_uri() . '/fse.css', array(), time(), 'all' );
    	wp_enqueue_style( 'emulsion-fse' );
    }
    

    余談

    add_editor_style()を使って、エディタ用のスタイルをフロント用とは別に追加するといった流れは、最近では過去のものになりつつあるように思います。

    add_editor_styleを使っている場合に、フロント用のCSSを使用するケースが増えています

    投稿エディタに関していえば、フロント用のCSSに、どうしてもエディタ用にスタイルが必要な場合は、.editor-styles-wrapper .wp-block-xxxx{}などとして、エディタ用のスタイルを書くことが多くなってきています。

    • この返信は1年、 7ヶ月前にnobitaが編集しました。
    • この返信は1年、 7ヶ月前にnobitaが編集しました。
    トピック投稿者 nrmy

    (@nrmy)

    ishitakaさん、nobitaさん

    ご回答いただきましてありがとうございます。
    お教えいただいたとおりにやってみたところ、うまくいきました!

    今回、エディター上でpostかpageかを判別する方法として、当初、get_post_type()、$typenow、$pagenowなどを試してみたのですが、うまくいかず、ご相談させていただいた次第です。

    なお、現在公開しているサイトでは、nobitaさんがおっしゃるとおり、一般公開しているスタイルの一部を、エディター用のスタイルにコピーしているのですが、一般公開しているスタイルに手を加えると、2つの間に差が出てきてしまうという問題がありました。
    そこで、リニューアルのために現在作っているものでは、一般公開しているスタイルをエディターでもそのまま用いるようにして、一般公開のスタイルとエディターのスタイルとで常に一致するようにしようとしています。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「編集画面において、投稿か固定ページかを判別する方法」には新たに返信することはできません。