フォーラムへの返信
-
投稿者投稿
-
キタジマ様の意図する内容:管理画面上で幅と高さが設定されてない(自動)のもの。
私の認識:html上でwidth・heightが設定されていないもの。あ、僕も「html上でwidth・heightが設定されていないもの」という認識でした。
管理画面上の高さが「style=”width:auto;height:355px”」にてhtml上に反映され、u-smooth-scrollの計算式に合算されるというニュアンスで合っていますでしょうか?
あーそうか、今の WordPress って
style
でwidth
とheight
が入っちゃうのでした…。これ確か公式の issues でもレスポンシブ対応しようとすると画像が歪んだりするということで報告があっていた気がするので、そのうち良い感じに修正されたら良いなと思っています。コアで修正されるまでの一時的な感じにはなりますが、下記のコードを My Snow Monkey プラグインか子テーマのfunctions.php
に追加すると、デフォルトよりは素直っぽい挙動になるかもしれません。/** * Remove width/height of style attribute at core/image. * For WordPress 6.3.0. Fixed in 6.3.1. * * @see https://github.com/WordPress/gutenberg/issues/53555 */ add_filter( 'render_block_core/image', function( $block_content, $block ) { $attrs = $block['attrs'] ?? array(); $w = $attrs['width'] ?? ''; $h = $attrs['height'] ?? ''; if ( $w && preg_match( '@^\d+@ms', $w ) && $h && preg_match( '@^\d+@ms', $h ) ) { $w = str_replace( 'px', '', $w ); $h = str_replace( 'px', '', $h ); $size_style = "width:{$w}px;height:{$h}px"; $ratio = "{$w}/{$h}"; $block_content = str_replace( $size_style, "aspect-ratio:{$ratio}", $block_content ); } return $block_content; }, 10, 2 );
別ページから、アンカーのある該当ページに移動する場合ですとズレが発生しなかったのですが、この差はページ内とページ外からのリンクで仕組みが異なるからでしょうか?
仕組みは違うのですが、画像が遅延読み込みで読み込まれず高さが保持されていない状態でアンカーに移動するとズレる、という部分は同じ気がするので、ちょっとわからないです…。
ちょっと書いてみました。数値は適当に書き換えてください。
@media (min-width: 640px) { .c-entries-carousel .spider__canvas { width: calc(100% + var(--entries--carousel--gap) * 4); // 4 は枚数 - 1 transform: translateX(-10%); } .c-entries-carousel .spider__slide { max-width: calc(20% - var(--entries--carousel--gap)); } }
ただ、やはり、現状 Swiper でいうアクティブなスライドを中央に配置するような機能が Snow Monkey のスライダーには無いので、無理矢理感はあるかなと思います。他に実現できるプラグインがあるようなら、それを使うほうが安定するのではないかと思います。
♥ 0Who liked: No userんーとなると
width
・height
以外の別の要因ですかねー。一旦コンテンツをガバっと消して、少しずつ戻していきながら都度都度スクロールが正しく動作するか確認していき、正しく動作しないものがでてきたらその場所が原因だとわかるので、さらに具体的に原因を追求していく、という感じで絞り込んでいくのが良いのかなと思います。♥ 0Who liked: No userphpでもメディアクエリが使えると聞いていたので(自身でやったことはないのですが)今回の場合はphp内で分岐したほうが良いのかな?と思ったのですが別にcssでも問題ないのですね。
んー PHP 自体ではできないと思うので、PHP で
style
タグを突っ込むみたいなことですかね? それでも良いと思いますが、既に独自の CSS ファイルがあるならそれを使ったほうが簡単だと思います。♥ 0Who liked: No user最近の投稿のカルーセル、基本3枚表示でスライドだったと思いますが、これを真ん中の1枚だけをちょっと大きめに表示、左右のものははみ出した部分が隠れるように表示したい、という認識であっていますかね?
♥ 0Who liked: No userちなみに上記コードまだ試せていないのですが、特に条件分岐など無さそうなので上記コードですと全ての閲覧環境・全てのページで表示されるという理解でよろしいでしょうか?
そうですね、そうなります。
PCやタブレットなどデバイス別(メディアクエリ別?)で表示したり、トップページや特定のページのみ(ページidで指定でしょうか)表示させたいときの条件分岐の書き方など教えていただけると大変有難いです……
「PCやタブレットなど」は CSS でメディアクエリを使って出し分けるのが無難です。「トップページや特定のページのみ」については、WordPress の条件分岐タグを使えば良いです。下記は公式ドキュメント(英語)のページですが、ぐぐったらいろいろでてくるかなと思います!
♥ 0Who liked: No userwidth
・height
が指定されていない画像に、width
・height
を指定するとどうなりますか?♥ 0Who liked: No user・PC限定(メディアクエリで一定のサイズ以上限定)、
・ブロックあるいはクラシックウィジェットどちらか限定、
・最大幅固定でサイズ以上のものは正常に動作しない(レスポンシブ対応や綺麗な拡縮などの制御は無視)前提…みたいな、極めて限定的な条件であればできる…といった感じでしょうか?それだと汎用的じゃないのでsnow monkey的には微妙そうですが。。
2つ目以外は(多分)技術的には可能ですが、経験上 PC だけじゃなくてモバイルでも表示できるようにしたいとか、正常に動作しない前提としていても正常に動作していませんとクレームが入る、といったことは確実にあるので、Snow Monkey 標準の機能として入れるのはどうかなという感じですね…。
自分なりにも調べたところ、空の使用していないウィジェットを使って、それをpositionなどで任意の位置に無理矢理置いて表示させる…みたいなやり方もみたので
確かにこれも技術的には可能です。空の使用していないウィジェットエリアでもできるとは思いますが、独自にウィジェットエリアを追加してやるほうがわかりやすいかなとは思います。ただ、ご自身でやるにしても、それなりに複雑なことになるので、バナーの表示くらいであればそこまでするのは大変そうかなとは個人的には思います。
参考:
♥ 0Who liked: No userご確認ありがとうございます!
編集画面からは設定できないということは、WordPress 的には「設定できないもの」という扱いになっているのだと思うので、次回のアップデートで、「投稿ページ」に割り当てている固定ページのテンプレートについては、もし設定済みだとしても反映されないようにしたいと思います。
♥ 0Who liked: No userデフォルトページヘッダー画像登録をしたら 全画像が入らず、上下・左右が切れてしまうので、
ページヘッダー画像は、どのような画像(縦長等)がきてもある程度それなりに表示するために、高さの制御がされており、はみでる部分はトリミングされるようになっています。CSS を追加することで高さの制御とトリミングを無効化できます。
.c-page-header[data-has-image=true] { height: auto; padding: 0; } .c-page-header[data-has-image=true] .c-page-header__bgimage, .c-page-header[data-has-image=true] .c-page-header__bgimage > picture { position: static; } .c-page-header[data-has-image=true] .c-page-header__bgimage > img, .c-page-header[data-has-image=true] .c-page-header__bgimage > picture > img { position: static; height: auto; }
ページヘッダー画像を使わない場合は↑は入れなくて大丈夫です。
固定ページで画像挿入、フル画面にして トップページヘッダー画像としています。
画像はそのまま入っていますが、メニューバーと画像の上の間に結構な大きさの空白が生じています。
レイアウトまわりがどのような設定になっているかで変わってくるので、実際に見てみないと正しい答えを提示できるかわからないのですが、とりあえず、下記の CSS を試してみると良いかもしれません。
.l-contents__inner { padding-top: 0; }
$query_args
という配列に値をセットされていますが、そもそも$query_args
という変数自体が存在していないのに値をセットしているように見えます。$args['vars']['_posts_query']->set( 'meta_key', 'sort' ); $args['vars']['_posts_query']->set( 'orderby', 'meta_value_num' ); $args['vars']['_posts_query']->set( 'order', 'ASC' );
にするとどうでしょうか?
♥ 0Who liked: No userスクショありがとうございます!
スクショに「投稿ページテンプレートを変更できません。」とあるので、今編集しようとしているのはホームページ設定で「投稿ページ」に割り当てている固定ページですよね? どこからかのバージョンから、WordPress は仕様として「投稿ページ」に割り当てている固定ページのテンプレートは変更できなくなったようです。
ただ、ダッシュボード→固定ページで一覧を表示して、「投稿ページ」に割り当てている固定ページのクイック編集からならテンプレートが変更できるみたいなので、そこで変更できるか試してみてください。
こちらの認識ではカスタマイザーの設定が反映されるものと考えていましたが
原因がわかりますでしょうか優先順位としては、
1. そのページに設定されたページテンプレート
2. カスタマイザーで設定したページレイアウトとなります。(1)がデフォルトなら(2)が反映されますが、現状だと(1)にスリム幅のテンプレートが設定されているように見えます。
♥ 0Who liked: No user編集画面を見ると、テンプレート:1カラム(スリム幅)になっていて変更不可とでます
「変更不可」という表示が出でいる画面のスクショを見せてもらうことはできますか?
♥ 0Who liked: No user -
投稿者投稿