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

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

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

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

Q&A

解決済

2回答

633閲覧

WordPress カスタム投稿タイプのカスタムフィールドをウィジェットに表示したい

Junkak

総合スコア20

WordPress

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

0グッド

0クリップ

投稿2018/09/24 00:24

編集2018/09/24 08:34

カスタムフィールドをウィジェットに表示したい

Listifyという海外製のWordPressテーマを使用しています。

WP User Frontend(ログインせずに誰でもフロントエンドから投稿・編集ができるようにするプラグイン)を使って、前もって用意しておいたカスタム投稿タイプに、ユーザーがイベント情報を投稿できるようにしました。このプラグインの機能を使って、イベント日時や場所などの補足情報をカスタムフィールドとして投稿することも可能で、投稿内容と一緒にカスタムフィールドの情報も詳細ページにちゃんと表示されています。

ところがそのカスタムフィールドをトップページのウィジェットに表示するのが上手く行きません。(タイトル、本文、アイキャッチ画像を表示することはできています)
イメージ説明
↑この日付の部分(投稿日)を、カスタムフィールドの「イベント開始日」「イベント終了日」に置き換えたいと考えています。

プラグイン制作元のサイト記事によると

ちなみにプラグインを通じて作られたカスタムフィールドは、WPUF Custom Fieldsとして投稿と一緒に保存されています。(↓管理画面)
管理画面

プラグイン制作元のサイトの記事(英語)によると、 text, textarea, dropdown, date, radioなどのカスタムフィールドの情報は、下記のコード一行で表示させることができるとのことです。

lang

1<?php echo get_post_meta( $post->ID, 'ここに事前に設定しておいたカスタムフィールドのMeta Keyを入力', true ); ?> 2```しかしこれを試してみても何も表示されませんでした。 3 4追記:何度か試してみると、下記のエラーが出るようになりました。 5(105行目は上記のコードを貼った箇所)

Notice: Trying to get property of non-object in /home/miyako-fan/miyakojima-fan.com/public_html/wp-content/plugins/miyakojima-customizations/widgets/class-widget-home-recent-events.php on line 105

これだけの記述では足りないのかなと考えています。 対処法をお分かりになる方、教えていただけると助かります。 宜しくお願いいたします。

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

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

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

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

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

CHERRY

2018/09/24 04:55

ウィジェットは、具体的に何でしょうか?
Junkak

2018/09/24 04:57

「Listify」という海外テーマの記事を表示するためのウィジェットです。画像を追加しますね。
guest

回答2

0

ベストアンサー

<?php echo get_post_meta( get_the_ID(), 'カスタムフィールド名', true ) ?>

としたら表示されるのでは??

投稿2018/09/24 09:56

momosiri

総合スコア1509

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

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

Junkak

2018/09/24 09:59

出来ました!ありがとうございます!
momosiri

2018/09/24 10:04

解決してよかったですね。どうして??という理由は・・まあいいか
Junkak

2018/09/24 11:55

是非教えていただけるとありがたいです! 公式が指定しているコードとは違っていたので、興味あります。
momosiri

2018/09/24 12:07

超簡単完結に説明させていただくと・・・ テーマに備わってる新着記事のウィジェットのコードは出力する件数分だけ同じものがぐるぐる回って該当するものを取得していくのでget_the_ID()で都度該当した投稿のIDを調べて、それに合致するカスタムフィールドを読みだすということをしています。 一方$post->IDは単独記事などで「これ!」と指定する場合に使うものなので、「これってどれ?」とエラーが出るんですね。 ・・・そんな感じです(説明下手ですみません)。
Junkak

2018/09/24 14:14

いえいえ、分かりやすかったです。 ありがとうございます!
guest

0

しかしこれを試してみてもダメでした。

どこにどのような記述をして、どう駄目だったのかがわかりませんが、

<?php echo get_post_meta( $post->ID, 'ここに事前に設定しておいたカスタムフィールドのMeta Keyを入力', true ); ?>

はテーマのテンプレートファイル(PHPファイル)に書く書き方です。

カスタムフィールドを「ウィジェット」エリアに表示したいのであれば、ウィジェットエリアに「テキストウィジェット」を追加し、ショートコード[wpuf-meta name="meta_key_name"]を記述してみてください。

投稿2018/09/24 07:58

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Junkak

2018/09/24 08:22 編集

言葉足らずでした。 ウィジェットを表示しているPHPファイルの投稿日を表示するコードを削除して、上記のコードを追加したところ、日付の部分は何も表示されませんでした。 (<?php echo get_the_date(); ?> を削除して、 <?php echo get_post_meta( $post->ID, 'event_start', true ); ?> を記載)
Junkak

2018/09/24 08:32 編集

再度上記を試してみたところ、空白だったものが Notice: Trying to get property of non-object in /home/miyako-fan/miyakojima-fan.com/public_html/wp-content/plugins/miyakojima-customizations/widgets/class-widget-home-recent-events.php on line 105 と表示されるようになりました。 (105行目は上記のコードの箇所)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問