aタグの最後の /
を削除してアクセスするとどうなりますか?
アドバイス、どうもありがとうございます!
教えていただいたように
<li><a href="http://サイト名/information/">information<a></li>
としてみたのですが、あいかわらずindex.phpのところに投稿という形になってしまいます。
パーマリンクの設定はどうなていますか? デフォルトなら、
http://サイト名/?post_type=information
ではないでしょうか。
kjmtshさん、書き込んでいただいてありがとうございます。
パーマリンクの設定は、投稿名、を選んでいます。
http://サイト名.com/information/
です。
ここまできて、問題が他にもあることがわかったので、基本的に間違っているような気がします。
トップページ(home.php)
ブログページ(index.php 投稿タイプです。)
informationページ(single-information.php 付け加えた投稿タイプです。)
すべてデザインが違います。
トップページのアドレスは、http://サイト名.com/
なのですが、ブログページも同じアドレスで、http://サイト名.com/記事タイトル
となっており、ブログページ全文を引き出すアドレスがありません…こういう、別にトップページを設けている場合、みなさんどうしてらっしゃるのでしょうか。
初めてワードプレスでオリジナルのサイトを作っており、わからないことだらけで質問ばかりしてご迷惑おかけしますが、もしよろしければアドバイスをよろしくお願いします。
ん?
http://サイト名.com/information/
このページには、何が表示されてほしいんですか?
わかりづらくてすみません。
http://サイト名.com/information/
では、日々更新するinformationです。
ブログページとは別の、投稿ページです。
カスタム投稿タイプ information に属する投稿が、全て表示されてほしいということでいいですか?
また、現在は、information に属する投稿が表示されているけれども、index.php のデザインになっているという意味でよろしいですか?
はい、ただ、少しややこしいのですが…
固定ページからページを確認、のところでは、ちゃんと information のページが見れているのに、http://サイト名.com/information/
とすると、index.phpのデザインで表示されます。
特に http://サイト名.com/information/
という形にこだわっているわけではぜんぜんありません。
「固定ページからページを確認」というのは、投稿を作成して、「投稿を表示」ボタンをクリックすると、ということでしょうか。このときは、single-information.php のデザインになるということですよね?
お使いのテーマに、テンプレートファイル archive.php あるいは、archive-information.php がありますか? もし、それらが存在しなければ、index.php が使われるのが正常動作です。
single-information.php は、投稿を一つずつ表示するのに使われますが、まとめて表示するときには使われないのです。この「まとめて表示すること」を、WordPress では「アーカイブ」と呼びます。だから、archive.php(汎用) または、archive-information.php(informationだけに適用) という名前のテンプレートが必要になります。
single-information.php と同じデザインにしたいのであれば、archive-information.php を作り、同様のマークアップをすればよいと思います。
詳しくは、
Template Hierarchy
をご覧ください。日本語版へのリンクもあります。
長くお付き合いいただいて感謝します。
まったくの初心者なのに無謀にも自作のテンプレートを作っていますので、archive.phpはありません…というか、その存在すら知りませんでした。お恥ずかしい。
archive-information.php を作り、同様のマークアップをする、というのは、
archive-information.php という名前のファイルを(内容は同じもので)作って、サーバーにアップするということでいいのでしょうか。
早速試してみます!
何か常識的なところの質問にお付き合いいただいて、どうもありがとうございます。
archive-information.php という名前のファイルを(内容は同じもので)作って、サーバーにアップする
single-information.php の中身がわからないので、何とも言えませんが、基本的にその通りでよいと思います。single-information.php のループは 1 回で終わりますが、archive-information.php の方は投稿が存在する限りループを継続するというところが違います。
早速作ってアップしたのですが、やっぱりindex.phpを読み込んでしまいます…。
ちなみに、ループするところの中身はこれです。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post();
<h3><?php the_title(); ?></h3>
<?php the_content(); ?>
<?php endwhile; ?>
<?php else : ?>
<h3>記事がありません</h3>
<p>表示する記事はありませんでした。</p>
<?php endif; ?>
ループは大丈夫です。ファイルを置く場所に間違いがなく、ファイル名も間違いがないとすると、カスタム投稿タイプの定義で、
has_archive => true
が抜けているかもしれませんね。投稿タイプの定義は、functions.php に書いてありますか、それとも何かプラグインを使っていますか? register_post_type() の引数に上の指定があるかどうか、確認してみてください。
ドキュメントは、下のリンク先です。
Function Reference/register post type
なんと!出来ました!
わ~うれしい!感動です!
kjmtshさん、このような初心者の質問に長い間お付き合いいただいて、的確なアドバイスを頂き大変感謝しております!
ちなみにコードはこう書きました。
<?php
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'information',
array(
'labels' => array(
'name' => __( 'information' )),
'has_archive' => true,
'public' => true,
'menu_position' => 5,
'rewrite' => array('slug' => 'information')
)
);
}
?>
おかげさまで、この問題は解決したのですが、途中でも少し書いたトップページとブログページのアドレスの重複のことが新たに発生して、ここでお伺いしたいのですが、ここのトピックの問題は解決しましたので、新たにトピックを立てて質問させていただきます。
本当に、どうもありがとうございました!