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

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

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

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

PHP

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

Q&A

解決済

2回答

2722閲覧

wordpress カスタムフィールドの作成

sssshin

総合スコア27

WordPress

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

PHP

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

0グッド

0クリップ

投稿2016/06/12 18:29

編集2016/06/12 18:48

wordpressにて店舗が自分のショップ情報を投稿できるようにするページを作成しようとしてるのですが、カスタム投稿がまだまだわからず記事一覧も個別ページもうまく表示されません。

参考サイト1
こちらを参考にして進めました。

functions.phpにはこういうふうに追加しました。メニューの左側にショップ登録は出てきてます。

php

1 2//カスタム投稿タイプの追加 INFORMATION 3add_action('init', 'info_init'); 4function info_init() 5{ 6 $labels = array( 7 'name' => _x('ショップ登録', 'post type general name'), 8 'singular_name' => _x('shop登録', 'post type singular name'), 9 'add_new' => _x('新しくショップを登録', 'item'), 10 'add_new_item' => __('新規ショップを登録する'), 11 'edit_item' => __('ショップを編集'), 12 'new_item' => __('新しいショップ'), 13 'view_item' => __('ショップを見る'), 14 'search_items' => __('ショップを探す'), 15 'not_found' => __('ショップはありません'), 16 'not_found_in_trash' => __('ゴミ箱にショップはありません'), 17 'parent_item_colon' => '' 18 ); 19 $args = array( 20 'labels' => $labels, 21 'public' => true, 22 'publicly_queryable' => true, 23 'show_ui' => true, 24 'show_admin_column' => true, 25 'query_var' => true, 26 'rewrite' => true, 27 'capability_type' => 'post', 28 'hierarchical' => true, 29 'menu_position' => 5, 30 'supports' => array('title'), 31 'has_archive' => true, 32 ); 33 register_post_type('informationshop',$args); 34} 35 36 37?> 38

Advanced Custom Fieldsにはこうしてます。
イメージ説明

archive-informationshop.phpを作成して、おそらくその部分をまるまるコピペしてるからget_fieldの部分で自分の設定したのと合ってないから取得できず表示されないのかなと思ってますが、phpはあまりわかってません。こうしてます

php

1<?php if ( have_posts() ) { ?> 2 <?php while ( have_posts()) { 3 the_post(); 4 $img = get_field('img'); 5 $imgurl = wp_get_attachment_image_src($img, 'full'); 6 $day = get_field('day'); 7 $title = get_field('title'); 8 $contents = get_field('contents'); 9 ?> 10 11 <article class="info_box cf"> 12 <div class="img"> 13 <img src="<?php echo $imgurl[0]; ?>" alt="インフォメーション<?php echo get_the_title( $ID ); ?>" width="202" height="152"> 14 </div><!-- //.img--> 15 <dl> 16 <dt><time pubdate="pubdate" datetime="<?php echo $day ; ?>"><?php echo $day ; ?></time> <?php echo $title ; ?></dt> 17 <dd><?php echo $contents ; ?></dd> 18 </dl> 19 </article><!-- //.info_box--> 20 <?php } // end of the loop.?> 21 22<?php } ?>

参考サイト2
こちらのサイトも参考にしてsingle-informationshop.phpも作成したのですが、作成しただけ中のコードがうまくわからず、
記事を書いて見てみた時に、記事の詳細ページはタイトル以外何も表示されず、記事一覧ページは作成した記事自体表示されません。

どうしたら良いか教えていただけないでしょうか?よろしくお願いします。

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

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

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

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

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

kei344

2016/06/12 18:34

「うまくできない」とは「何をしたときに」「どうなると思って」「どうなったのか」をお書きください。
guest

回答2

0

見たところカスタムフィールドに$dayも$contentsもないからではないでしょうか?
日付とコンテンツを通常のフィールドを利用するなら、

php

1 <article class="info_box cf"> 2 <div class="img"> 3 <img src="<?php echo $imgurl[0]; ?>" alt="インフォメーション<?php echo get_the_title( $ID ); ?>" width="202" height="152"> 4 </div><!-- //.img--> 5 <dl> 6 <dt><time pubdate="pubdate" datetime="<?php the_time('Y年n月j日'); ?>"><?php the_time('Y年n月j日'); ?></time> <?php the_title(); ?></dt> 7 <dd><?php the_content() ; ?></dd> 8 </dl> 9 </article><!-- //.info_box--> 10 <?php } // end of the loop.?> 11 12<?php } ?>

これで表示されるのではないでしょうか?

投稿2016/06/13 02:30

kchiku

総合スコア146

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

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

sssshin

2016/06/13 08:03

回答ありがとうございます。変更してみたのですが何も変わらずです。
kchiku

2016/06/13 08:37

「カスタムフィールドに$dayも$contentsもない」という部分は理解していますか?
sssshin

2016/06/13 10:34

いえ理解していないです。 まずshingleは個別記事でarchiveは記事一覧ページというところが合ってるかってところからあまりわかってません。
kchiku

2016/06/13 10:54

画像をアップされているAdvanced Custom Fieldsの設定画面上にdayとcontentsの項目がないので参照しようがないのではないか、という話です。 ですので日付は投稿時に付与される情報を、コンテンツは投稿画面に最初から用意されているフィールドに記載して、wordpressにあらかじめ用意されている関数のthe_time()とthe_content()で表示したらどうでしょう、という提案でした。 理解が難しいようでしたら、サイトを作成する前に一度書籍などで勉強されてからのほうが良いのではないでしょうか? ちなみにsingleとarchiveの各テンプレートの解釈は合っています。
guest

0

ベストアンサー

ひとまずデバッグモードにして状況を確認してみてください。エラーが出力されるようになるので、問題が解決しやすくなります。その結果出力されるエラーを質問に追記していただけますでしょうか。

【WordPress初心者におすすめ!デバッグモードの使い方 | Mignon Style】
http://mignonstyle.com/debug-mode/

また、「wp-config.phpに書かれている」と書いてありますが、環境によって書かれていないことがあります。その場合はwp-config.phpの最後に追記してください。

PHP

1define('WP_DEBUG', true);

追記:

【Custom Post Type UIの使い方[WordPress]】
http://kotori-blog.com/wordpress/custom_post_type_ui/

【Custom Post Type UIでカスタム投稿を作って、誰でも簡単に編集できる投稿画面を作る方法 | OXY NOTES】
http://oxynotes.com/?p=1339

【Custom Post Type UI の編集画面を日本語で徹底解説! - コスギス|新潟県長岡市】
http://kosgis.com/news/custom-post-type-ui-ja/

これも一緒に入れておくと便利だと思います。

【WordPress » カスタム投稿タイプのパーマリンクを設定するプラグイン — Custom Post Type Permalinks | MORILOG】
http://morilog.com/wordpress/post_type/custom_post_type_permalinks_plugin/

投稿2016/06/13 12:35

編集2016/06/13 17:04
kei344

総合スコア69400

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

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

sssshin

2016/06/13 12:49

ありがとうございます。 デバックモード知らなかったです。今ショップ登録→項目入力してプレビューと試してみたのですが、 Notice: Undefined index: is_no_adsense in 〜functions.php on line 93 Warning: Cannot modify header information - headers already sent by (output started at 〜functions.php:3897) in pluggable.php on line 1171 と出ました。 functions.phpの93行目は $is_no_adsense = $_POST["is_no_adsense"]; とあります。
kei344

2016/06/13 13:18

プレビューではなく当該ページで確認されたほうが良いと思います。また、どのようなテンプレートを使用されているかもあわせてかかれたほうがよいでしょう。少なくともかなり特殊なもののようです。(たとえば$is_no_adsense がどのような使われ方をするのかがわからないため、前後が無いとわかりません)
sssshin

2016/06/13 13:34

テンプレートはMaterialを使用しています。 そのページの上の部分を見てみるとこういうエラーが出ました。 Notice: register_post_type が誤って呼び出されました。投稿タイプ名の長さは1から20文字でなければいけません。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 4.2 で追加されました) in 〜wp-includes/functions.php on line 3897 Notice: Undefined variable: max_page in 〜themes/wp_material_child/header.php on line 94 Notice: Undefined variable: label in 〜themes/wp_material_child/header.php on line 98
sssshin

2016/06/13 13:36

header.phpの94から98を載せます。 if ( !$max_page )$max_page = $wp_query->max_num_pages; if ( !$paged ) $paged = 1; $nextpage = intval($paged) + 1; if ( null === $label )$label = __( 'Next Page &raquo;' );
kei344

2016/06/13 17:02

> Notice: Undefined variable: PHPのエラー文で検索されると解法が出てくることが多いです。 【「Notice: Undefined index」「Notice: Undefined variable」の解決と解説 - 地中へのはしご】 http://d.hatena.ne.jp/sagra-da/20120405/1333587852 > Notice: register_post_type たぶんご自身で書かれたカスタム投稿タイプの記述がそもそも間違っている可能性があります。カスタム投稿タイプの作成はプラグインでされたほうが良いと思います。 また、その際はスラッグを現在と変更しないと問題が起きる可能性が高いので、変えてください。
sssshin

2016/06/14 05:37

なるほど。もう少し勉強して試してみます。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問