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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

Q&A

解決済

2回答

2327閲覧

WPのカスタム投稿の一覧ではなく、単独表示

yf

総合スコア48

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

0グッド

0クリップ

投稿2015/09/03 10:04

こんにちは。
WPのカスタム投稿で困っておりご教授お願いしたい次第です。
フォーラムや検索をかけても思ったような(自分の理解がないだけだと思いますが)記事が、
見つかりませんでした。

現在WPでカスタム投稿タイプを設置しており、一覧表示は出来ております。
お知らせ(ニュースやイベント情報)を掲載しているのですが、
テンプレートはarchive-info.phpを使用しております。
contents部分は新しい記事が上にきて、
投稿する度にひとつずつ増えていく内容になってます。

/custom_post.php (inc/custom_post.php)の記載/
カスタム投稿タイプの設定 info
---------------------------------------------------- */
add_action('init', 'info_custom_init');
function info_custom_init()
{
$labels = array(
'name' => _x('お知らせ', 'post type general name')
);
$args = array(
'labels' => $labels,
'public' => true,
'menu_icon' => 'dashicons-info',
'show_ui' => true,
'capability_type' => 'post',
'has_archive' => true,
'query_var' => false,
'rewrite' => true,
'menu_position' => 5,
'supports' => array('title','editor'),
);
register_post_type('info',$args);

/** * csv importerを使用する際は hierarchical => false にする */ register_taxonomy( 'info_cat', 'info', array( 'hierarchical' => true, 'update_count_callback' => '_update_post_term_count', 'label' => 'お知らせカテゴリ', 'singular_label' => 'お知らせカテゴリ', 'public' => true, 'show_ui' => true, 'rewrite' => array('slug' => 'info' ,'hierarchical' => true), 'menu-order' => true ) );

}

/archive-info.phpのcontents部分/

<?php while ( have_posts() ) : the_post();?> <a href="<?php echo get_post_type_archive_link($post->postname); ?>"> <div class="entry info_block"> <?php $info_cat = wp_get_post_terms($post->ID,'info_cat');?> <span class="info_date"><?php the_time('Y.m.d'); ?></span> <?php if (isset($info_cat[0])): ?> <span class="label <?php echo $info_cat[0]->slug ?> info2"><?php echo $info_cat[0]->name ?></span> <?php endif ?> <br> <span class="info_title"><?php the_title(); ?></span> <div class="info_content"><?php the_content(); ?></div> </div></a> <hr class="info_hr"> <?php endwhile; ?> </div>

/function.phpの中身/

<?php /** * 関数 */ include_once (TEMPLATEPATH . '/inc/custom_post.php'); //カスタム投稿タイプ専用 include_once (TEMPLATEPATH . '/inc/shortcode.php'); //ショートコード専用 /** * wp_head() で出力しないように */ remove_action('wp_head', 'wp_generator'); remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); remove_action('wp_head', 'rel_canonical'); remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0); remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'feed_links_extra', 3); remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'wp_print_styles', 'print_emoji_styles', 10 ); function remove_recent_comments_style() { global $wp_widget_factory; remove_action('wp_head', array($wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style')); } add_action('widgets_init', 'remove_recent_comments_style'); /** * the_content出力時に自動で<p><br />を付けないように */ function noautop( $content ) { remove_filter( 'the_content', 'wpautop' ); return $content; } add_filter( 'the_content', 'noautop', 1 ); /** * リッチエディタで全角スペースを残す */ add_filter('tiny_mce_before_init', 'my_tiny_mce_before_init_filter'); function my_tiny_mce_before_init_filter( $init_array ) { $init_array['remove_linebreaks'] = false; return $init_array; } /** * thumbnailを有効化 */ if ( function_exists( 'add_theme_support' ) ) { add_theme_support( 'post-thumbnails' ); } /** * 日本語などマルチバイトの場合は、{投稿タイプ}-141222に強制的に変更 */ function auto_post_slug( $slug, $post_ID, $post_status, $post_type ) { if ( preg_match( '/(%[0-9a-f]{2})+/', $slug ) ) { $slug = utf8_uri_encode( $post_type ) . '-' . date('ymd'); } return $slug; } add_filter( 'wp_unique_post_slug', 'auto_post_slug', 10, 4 ); そこで、個々の投稿も単独で表示させたいと思ったのですが、 パーマリンク設定を/%postname%/に設定(英数字で出力されます)し、 個々から飛ぶリンク先を<?php the_permalink(''); ?>に設定したのですが、

404.phpが表示されてしまいます。

何卒よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

個別記事へのリンクを表示させるのは

php

1<?php the_permalink(); ?>

で、特に引数は必要なかったかと思います。もしかしたらこの引数が原因かもしれませんが、

カスタム投稿を登録する時のオプションに'rewrite' => trueを指定した時、
管理画面のパーマリンク設定でもう一度 保存ボタンを押さないと、個別ページが404表示になることがあります。
function.phpにカスタム投稿の指定を記述後にパーマリンク設定を保存しなおしていないなら、
一度管理画面 > 設定 > パーマリンク設定にアクセスし、特に変更はせず保存ボタンを押してみてはいかがでしょうか?

投稿2015/09/06 14:36

KiKiKi_KiKi

総合スコア596

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

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

0

内容未チェックですが、<?php the_permalink(''); ?>に当たる部分のHTML sourceのLINK先URLはどのように生成されていましたか?
WEBブラウザの開発ツール/デベロッパーツールや右クリックしてソースを表示で出力内容を確認してみては如何でしょか?

投稿2015/09/05 02:21

Ken.sakanakana

総合スコア1768

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問