質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

3回答

9536閲覧

Wordpress 投稿ページの並べ方について

dogfood

総合スコア19

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2019/05/24 00:58

編集2019/05/24 01:06

wordpressのトップページ内で新着記事を表示したいと考えています。
画像と新着記事のタイトルなどを三つ、縦ではなく横に並べたいとした時、どのように表記したらいいかわからず困っております。ご教授いただけたら幸いです。

indepx.php

<div class="site-section"> <div class="container"> <div class="row mb-5"> <div class="col-md-12"> <h2 class="site-section-heading text-center">最新情報</h2> <span class="caption d-block text-black text-center">NEWS</span> </div> </div> <?php $infoPosts = get_posts('numberposts=3&category=4'); foreach($infoPosts as $post): ?> <div class="row mb-5"> <div class="col-md-4 col-lg-4 mb-5 mb-lg-4"> <div class="media-with-text mb-4"> <div class="mb-4"> <a href="#"> <img src="<?php bloginfo( 'stylesheet_directory' ); ?>/images/img_1.jpg" alt="" class="img-fluid"> </a> </div> <h2 class="h5 mb-2"><a href="#"><?php the_title(); ?></a></h2> <span class="mb-3 d-block post-date"><?php the_time('Y/m/d'); ?>By <a href="#">harry black</a></span> <p>新しいニュースです。新しいニュースです。新しいニュースです。新しいニュースです。新しいニュースです。</p> </div> </div> </div> <?php endforeach; ?> </div> </div>

テーマは自作のHTMLです。

CSS表記はこうなっております。

CSS

1.site-section { 2 padding: 3em 0; } 3 @media (min-width: 768px) { 4 .site-section { 5 padding: 7em 0; } } 6 .site-section.site-section-sm { 7 padding: 4em 0; }``` 8 9現時点では縦並びで三つ表示されております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2019/05/24 01:02

ブロックを横に並べるのは、 CSS の役目ですので、お使いのテーマ名 と CSS も提示してください。
guest

回答3

0

ついでにgrid

css

1grid-template-columns:repeat(auto-fill,minmax(30rem,1fr));

みたいな指定でflexっぽい感じにできる
flexだと余った最後の行が横に伸びちゃうけど
gridでやればその問題は解決
なおかつflexよりレイアウト処理が早い(らしい)

実装がflexの時より比較的各ブラウザの足並みは揃ってる感じ

というかWordPressがすでに新エディタで
カラムとかメディアと文章とかのブロックに使っちゃってる

WordPress自身が使っちゃってるならもう
WordPressのテーマ作るのに使ってもいいでしょう
動かなかったらどうせその辺で崩れるわけですし

投稿2019/05/24 04:39

KazuhiroHatano

総合スコア7804

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんにちは。
私も2ヶ月前に自作テーマで記事の横並びを実装したので、参考になればと思います。

CSSで制御するには、ひと昔前にはfloatを使われていました。
それがより便利なったのがFlexボックス、さらに配置の自由度が増したグリッドレイアウトが登場しています。

添付した画像は私のサイトのものですが、横並びの要素を折り返すことで複数行にしています。(2x5や3x3など)

横並びにするだけならFlexでも充分です。
(Flexボックスの解説を読めば、その便利さがわかると思います)

それでもグリッドレイアウトを採用した理由は、要素の横幅を自動計算してくれたり、記事と記事の間をmarginではなくgapというプロパティで一括で指定できるからです。

イメージ説明

以下、home.phpとcssのソースの一部です。画像と見比べてご活用ください。
※WordPressのループで最新記事を1ページに10件表示しています
※「カード」全体をリンクの範囲にするためにaタグで囲んでいます

PHP

1<div class="grid-container"> 2<?php if( have_posts() ): 3 while( have_posts() ): the_post(); ?> 4 <article> 5 <a href="<?php the_permalink(); ?>"> 6 <figure> 7 <!-- アイキャッチ --> 8 </figure> 9 <h2><?php the_title(); ?></h2> 10 <?php the_time('Y.m.d'); ?> 11 </a> 12 </article> 13<?php endwhile; endif;?> 14</div>

カギとなるのは、横並びにする要素を包むボックスです(よくコンテナと呼ばれます)。
これはFlexボックスにも同じことが言えます。

横並びにしたい記事(articleタグ)を包むコンテナ(divタグ)にいくつかのプロパティを指定しています。
PC表示では3つ横並びにしており、4件目以降が折り返されます。
※「3つ並べる」と決まっているなら、repeat記法に「3」と書くことで自動で3等分の幅を計算してくれます。
(最低幅・最大幅を指定したい場合、minmax関数というものがあります)

css

1.grid-container { 2 display: grid; 3 gap: 15px; 4 grid-template-columns: repeat(3, 1fr); 5}

自作テーマの制作、頑張ってください。

投稿2019/05/24 04:26

編集2019/05/29 16:47
chromitz

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dogfood

2019/05/29 09:26

ありがとうございます!!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問