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

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

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

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

PHP

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

Q&A

解決済

1回答

231閲覧

Wordpressでショートーコードでのカスタム投稿の一覧取得について

sazami

総合スコア18

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/11/30 13:10

編集2018/11/30 13:19

Wordpress固定ページで、独自ショートーコードを使ってカスタム投稿の新着一覧「日付」「タイトル」「記事内容」を表示させたいと思っています。
下記コードを設置してみると、記事内容は表示されているものの「タイトル」はショートコードを設置した固定ページのタイトル、「日付」は固定ページを作成した日付が表示されてしまい、うまく取得ができません。
リンクも固定ページに飛びます。
function.php ショートコードでphpファイルの呼び出しを設定
info.php 一覧表示のテンプレートを作成
固定ページ ショートコードの記述
調べても、この内容に合う情報が見つからず困っております。助けていただけると助かります。よろしくお願い致します。

function

1function my_php_Include($params = array()) { 2 extract(shortcode_atts(array('file' => 'default'), $params)); 3 ob_start(); 4 include(STYLESHEETPATH . "/$file.php"); 5 return ob_get_clean(); 6} 7add_shortcode('myphp', 'my_php_Include');

php

1<?php 2 $args = array( 3 'post_type' => 'info', 4 'posts_per_page' => 6 5 ); 6 $the_query = get_posts( $args ); 7 foreach ( $the_query as $post ) : setup_postdata( $post ); 8?> 9 10 <div class="info-box"> 11 <div class="day"><?php the_time('Y.m.d')?></div> 12 <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 13 <p><?php the_excerpt();?></p> 14 </div> 15 16<?php endforeach; ?> 17<?php wp_reset_postdata(); ?>
固定ページ内ショートコード [myphp file='info']

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

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

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

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

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

guest

回答1

0

ベストアンサー

php

1<?php the_title(); ?> 23<?=$post->post_title; ?> 4 5 6<?php the_excerpt(); ?> 78<?=$post->post_excerpt; ?> 9

ほんとはそれぞれ通すべきフィルタをかけてやるのが
丁寧なやり方なのだけど面倒なので省略

the_titleとかthe_excerptとかはグローバルの$post変数から値を取得しますが
setup_postdataグローバルの$post変数を上書きするものじゃないです
そしてグローバルの$post変数をメインクエリのループ以外で上書きするのは非推奨です
WordPressも非推奨といっているのでそのうちできなくなるかもしれません

投稿2018/11/30 16:01

編集2018/11/30 16:10
KazuhiroHatano

総合スコア7802

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

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

sazami

2018/11/30 16:19

ご回答いただき、ありがとうございます。 <?=$post->post_title; ?>については無事表示できましたが、<?=$post->post_excerpt; ?>については何も表示されませんでした。記事内容については元々なぜか<?php the_excerpt(); ?>で表示されていました。 タイトル・日付の表示がおかしかったので、教えていただいた物にならって日付を<?=$post->post_time;('Y.m.d') ?>としてみましたが、こちらも何も表示されませんでした。 原因がよくわかりませんので、引き続き教えていただけると助かります。
KazuhiroHatano

2018/11/30 16:33

post_timeはないです、あるのはpost_date 指定のフォーマットで日付を出力したいなら <?=date('Y.m.d',strtotime($post->post_date))?> みたいな感じ post_excerptプロパティは抜粋を入力してないと出てこないので moreタグとかから生成して取得するなら <?=get_the_excerpt($post);?> みたいな感じに
sazami

2018/11/30 16:38

ありがとうございます!無事表示できました。 自力では絶対わからなかったです。 大変たすかりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問