🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

WordPress

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

PHP

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

Q&A

解決済

1回答

913閲覧

wordpress: SQLで取得したデータをスライドショーで表示したい

scottie320

総合スコア28

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

WordPress

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

PHP

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

0グッド

0クリップ

投稿2021/01/24 05:16

編集2021/01/26 01:39

前提・実現したいこと

現在ニュース記事を一覧でDBから取得しているのですが、
スライドショーで1記事ずつ表示したいと考えております。
色々調べてみたのですが、方法が見つからず、教えていただきたいです。

該当のソースコード

news.php

PHP

1 <div class="sec-news"><div class="sec-in-s"> 2<?php if (have_posts()) : ?> 3 <ul class="list-news"> 4<?php while (have_posts()) : the_post(); ?> 5 <li><time datetime="<?php esc_html(the_time('Y-m-d')); ?>"> 6 <?php esc_html(the_time('Y.m.d')); ?></time> 7 <a href="<?php esc_url(the_permalink()); ?>"> 8 <?php esc_html(the_title()); ?></a></li> 9<?php endwhile; ?> 10 </ul> 11<?php endif; ?>

query.php

PHP

1/** 2 * Iterate the post index in the loop. 3 * 4 * @since 1.5.0 5 * 6 * @global WP_Query $wp_query WordPress Query object. 7 */ 8function the_post() { 9 global $wp_query; 10 $wp_query->the_post(); 11}

補足情報(FW/ツールのバージョンなど)

PHP 7.4
wordpress 5.4

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

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

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

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

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

guest

回答1

0

自己解決

下記のように実装しました。

php

1<!-- サブクエリをセット --> 2<?php $args = array( 3 'post_type' => 'news', // 投稿タイプ 4 'posts_per_page' => 3, // 表示件数。 -1ならすべての投稿を取得 5 'orderby' => 'date', // ソート 6 'order' => 'DESC'); // 降順(日付の場合、日付が新しい順)?> 7<?php $loop = new WP_Query($args);?> 8 9<?php if ($loop->have_posts()) : ?> 10 <ul class="list-topics"> 11<?php while ($loop->have_posts()) : $loop->the_post(); ?> 12 <li id="slides"><time datetime="<?php esc_html(the_time('Y-m-d')); ?>"><?php esc_html(the_time('Y.m.d')); ?></time><a href="<?php esc_url(the_permalink()); ?>"><?php esc_html(the_title()); ?></a></li> 13<?php endwhile; ?> 14 </ul> 15 16<?php endif; ?><?php wp_reset_postdata();?> 17</div></div>

css

1#page-home #main .sec-topics .sec-in-s .list-topics { 2 overflow: hidden; 3 position: relative; 4 height: 140px; 5 top: 10px; 6 list-style: none; 7}

js

js

1 function switchByWidth() { 2 if (window.matchMedia('(max-width: 767px)').matches) { 3 //スマホ処理 4 var loop = setInterval(function () { 5 //li先頭要素のクローンを作成 6 var clone = $('.list-topics li:first').clone(true); 7 //li先頭要素のマージントップにマイナスを指定しアニメーションさせる 8 $('.list-topics li:first').animate( 9 { 10 marginTop: '-84px', 11 }, 12 { 13 duration: 1500, 14 complete: function () { 15 //処理完了時に先頭要素を削除 16 $('.list-topics li:first').remove(); 17 //クローンをliの最後に追加 18 clone.clone(true).insertAfter($('.list-topics li:last')); 19 }, 20 } 21 ); 22 }, 3000); 23 } else if (window.matchMedia('(min-width:768px)').matches) { 24 //PC処理 25 var loop = setInterval(function () { 26 //li先頭要素のクローンを作成 27 var clone = $('.list-topics li:first').clone(true); 28 //li先頭要素のマージントップにマイナスを指定しアニメーションさせる 29 $('.list-topics li:first').animate( 30 { 31 marginTop: '-133px', 32 }, 33 { 34 duration: 1500, 35 complete: function () { 36 //処理完了時に先頭要素を削除 37 $('.list-topics li:first').remove(); 38 //クローンをliの最後に追加 39 clone.clone(true).insertAfter($('.list-topics li:last')); 40 }, 41 } 42 ); 43 }, 3000); 44 } 45 } 46 window.onload = switchByWidth; 47 window.onresize = switchByWidth;

投稿2021/02/07 05:33

scottie320

総合スコア28

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問