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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1042閲覧

PHPで呼び出した記事一覧をCoCoonテーマのブログカード型にする方法

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/10/12 23:53

編集2020/10/14 03:05

Wordpressを使用しております。
PHPで呼び出した記事一覧をブログカード型にする方法を教えてください。
PHPソースは下記のとおりになります。

PHP

1<?php 2//カテゴリ情報から関連記事を10個ランダムに呼び出す 3$tags = wp_get_post_tags($post->ID); 4$tag_ids = array(); 5foreach($tags as $tag): 6 array_push( $tag_ids, $tag -> term_id); 7endforeach ; 8$args = array( 9 'post__not_in' => array($post -> ID), 10 'posts_per_page'=> 10, 11 'tag__in' => $tag_ids, 12 'orderby' => 'rand', 13); 14$query = new WP_Query($args); ?> 15 <?php if( $query -> have_posts() ): ?> 16 <?php while ($query -> have_posts()) : $query -> the_post(); ?> 17 <div class="related-entry"> 18 <div class="related-entry-thumb"> 19 <a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"> 20 <?php if ( has_post_thumbnail() ): // サムネイルを持っているとき ?> 21 <?php echo get_the_post_thumbnail($post->ID, 'thumb100'); //サムネイルを呼び出す?> 22 <?php else: // サムネイルを持っていないとき ?> 23 <img src="<?php echo get_template_directory_uri(); ?>/images/no-image.png" alt="NO IMAGE" title="NO IMAGE" width="100px" /> 24 <?php endif; ?> 25 </a> 26 </div><!-- /.related-entry-thumb --> 27 28 <div class="related-entry-content"> 29 <h7 class="related-entry-title"> <a href="<?php the_permalink(); ?>"> 30 <?php the_title(); //記事のタイトル?> 31 </a></h7> 32 <p class="related-entry-snippet"> 33 <?php echo mb_substr( strip_tags( $post->post_content ), 0, 70 ) . ''; //記事本文の抜粋を70文字だけ取り出す?></p> 34 </div><!-- /.related-entry-content --> 35 </div><!-- /.new-entry --> 36 37 <?php endwhile;?> 38 39 <?php else:?> 40 <p>記事はありませんでした</p> 41 <?php 42endif; 43wp_reset_postdata(); 44?> 45<br style="clear:both;"> 46

Cocoonテーマのブログカードで使用されていたCSS

CSS

1 2/* ===== 内部リンクカード(ショートコード) ===== */ 3.inline-linkcard { 4 border: 1px solid #ddd; 5 border-radius: 3px; 6 margin: 10px auto; 7 padding: 0; 8} 9.inline-linkcard + br + .inline-linkcard { 10 margin-top: calc(-1em + -10px); 11} 12.inline-linkcard a { 13 padding: 10px; 14 display: grid; 15 grid-template-columns: 16% 1fr; 16 text-decoration: none; 17} 18.inline-linkcard a img { 19 width: 100%; 20 height: auto; 21 align-self: center; 22} 23.inline-linkcard a p { 24 padding-left: 15px; 25 align-self: center; 26 margin: 0.2em 0; 27 font-size: 0.85em; 28}

<検証データ>

HTML

1<div class="inline-linkcard"> 2<a href="URL" title="タイトル名"> 3<img width="100" height="100" data-src="画像のソース" class="attachment-thumb100 size-thumb100 wp-post-image lozad lozad-img" loading="lazy" alt="" data-srcset="画像のソース"/></noscript></a><a href="URL"> タイトル名</a></div>

[追記]
・CSSでブログカード化できたのですが、タイトルが縦長に伸びてしまいました。
サムネイル画像と横並びに置きたいのですが、どうすればよろしいでしょうか。
イメージ説明

以上、よろしくお願い致します。

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

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

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

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

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

m.ts10806

2020/10/13 00:35 編集

「ブログカード化」とは何でしょうか。 コードだけ提示されても分かること(伝わること)は多くありません。
退会済みユーザー

退会済みユーザー

2020/10/13 00:55

記事リストをリンクカード形式にするということです。 (伝わるか不安ですが。。。)
m.ts10806

2020/10/13 01:08

質問は編集できますので。 文章よりも図示とか既に実現しているサイトがあるならその部分の画面キャプチャとかしてもらったほうが伝わるかと思います。 おそらく、CSSの範疇ですね
退会済みユーザー

退会済みユーザー

2020/10/13 02:14

ありがとうございます。 画像を追加させていただきましたので、ご確認お願い致します。
退会済みユーザー

退会済みユーザー

2020/10/13 08:19

ご指摘ありがとうございます。 そちらの方は削除依頼出させていただきました。
m.ts10806

2020/10/13 08:29

先に書いたように必要な情報を取得、表示できているのでしたらCSSの範疇です。 あとはWordPressと使用しているテーマ次第でどこに書くべきかが決まりますが、ひとまず静的HTMLで作ってみてはと。
退会済みユーザー

退会済みユーザー

2020/10/13 08:31

ありがとうございます。CSSでリンクカード型にできるんですね。 テーマはCocoonを使用しております。
m.ts10806

2020/10/13 09:51 編集

>CSSでリンクカード型にできるんですね。 いえ、「自分でそういう風に組む」です。 リンクカード型という機能がそのままあるわけではありません。 が「テーマ次第」と申し上げたのは、テーマにレイアウトが用意してあるかもしれないので、それを確認してもらいたいということです。 念のため、質問本文にもテーマ名を追記しておいてください。
退会済みユーザー

退会済みユーザー

2020/10/13 23:52

ありがとうございます。 テーマおよびに使用されているCSSを追加させていただきましたので、 ご確認お願い致します。
Lhankor_Mhy

2020/10/14 00:42

ちらっとCocoonテーマのコードをのぞいてみましたが、 blogcard-in.php をインポートして url_to_internal_blogcard_tag という関数にURLを渡すと、その手のことをやってくれそうな感じでした。 PHPはよくわからないので、間違っていたらすみません。
退会済みユーザー

退会済みユーザー

2020/10/14 01:03

ありがとうございます。 なるほど…そのようなやり方もあるんですね。 今回CSSでブログカード化できてしまいました。申し訳ございません…。 ただ、タイトル部分が追加した画像のような状態になってしまっております。
hatena19

2020/10/14 02:52 編集

phpコードから出力されるHTMLコードを推測するのは非常に手間ですので、出力されたHTMLコードを提示してもらえませんか。 ブラウザに表示させて検証ツールでブログカードのタグを右クリックしてCopyで簡単にHTMLコードをクリップボードに格納できます。
退会済みユーザー

退会済みユーザー

2020/10/14 03:06

ありがとうございます。 検証データの方を追記させていただきました。 (情報が入ってしまう為、簡略化しております。)
guest

回答1

0

ベストアンサー

css

1.inline-linkcard a { 2 padding: 10px; 3 display: grid; /* ここ */ 4 grid-template-columns: 16% 1fr; /* ここ */ 5 text-decoration: none; 6}

上記で grid で2列にして1列目の幅を 16% にしているのが原因でしょうね。
aリンク内の画像や、次のaリンク内のタイトルの幅がカード(.inline-linkcard)の幅の16%になってしまってます。

gridは子要素のレイアウトを決めるものですので、aリンク画像とaリンクタイトルを横並び(2列)にしたいのなら、親要素の .inline-linkcard に設定してください。

css

1.inline-linkcard { 2 border: 1px solid #ddd; 3 border-radius: 3px; 4 margin: 10px auto; 5 padding: 0; 6 display: grid; /* こちらに移動 */ 7 grid-template-columns: 16% 1fr; /* こちらに移動 */ 8}

1列目の幅が 16%でいいのかは微妙です。pxで固定幅(画像の幅)に設定するほうかよさそうに思えます。この辺は実際の表示をみながらいろいろ調整してみてください。

投稿2020/10/14 03:29

編集2020/10/14 03:42
hatena19

総合スコア33790

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

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

退会済みユーザー

退会済みユーザー

2020/10/14 04:10

ありがとうございます! 上記内容に修正したら、理想通りに出力されました。 gridの1列目の幅が原因だったんですね…。 また機会がありましたら、よろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問