更新しました!
私はいくつかのチュートリアルに従ってWordPress用のテーマを開発しています。メインページはうまく機能し、カスタム投稿タイプの投稿をロードし、Wordpressの命名法に従ってsingle-{name-cpt} .phpのようにcptの内容を見るためのページを表示します。
問題は、通常のページを作成したときです。ページのURLを入力すると、エラーページが404.phpと表示されます。
リンク構造を更新し、.htaccessが正しいことを確認しました。
Page.phpが読み込まれないようにするために何が起こり得るのですか?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
カスタムリンク構造:/ blog /%postname%/
更新しました!
Cptを作成するための機能コード:
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'videos_porno',
array(
'labels' => array(
'name' => __( 'Videos porno' ),
'singular_name' => __( 'Video porno' )
),
'public' => true,
'has_archive' => false, //true
'hierarchical' => false,
'rewrite' => array('slug' => '', 'with_front' => false),
'register_meta_box_cb' => 'add_metaboxes_video_porno',
'supports' => array( 'title', 'editor', 'thumbnail' )
)
);
$args= array(
'label' => 'Servidores',
'hierarchical' => false,
'rewrite' => false,
);
register_taxonomy( 'servidores', 'videos_porno', $args );
}
function my_rewrite_flush() {
create_post_type();
flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'my_rewrite_flush' );
Cptが追加するコードを実装する前に、すべてが正しく機能しています。
リンク構造が/ blog /%postname%の場合、cptの投稿とページがURLのディレクトリ "/"を共有している可能性はありますか?
サーバーの設定やテーマに問題があるかどうかを判断するために、カスタム投稿タイプに対して異なる結果を表示する非常に単純なテーマを作成できます。
私はちょうどそれを次のテーマで試しました:
style.css
/**
* Theme Name: WPSE
*/
functions.php
<?php
function wpse_init() {
register_post_type( 'wpse', array(
'labels' => array(
'name' => 'wpse',
),
'public' => true,
) );
}
add_action( 'init', 'wpse_init' );
index.php
<?php
echo 'index';
single-wpse.php
<?php
echo 'single-wpse';
それから、 'test'というスラッグを持つ新しいwpseカスタム投稿タイプを作成しました。ブラウザで/wpse/test
に移動したときに、期待どおりに「single-wpse」というページが表示されました。
注:テーマを切り替えた後、書き換えルールを更新する必要があるか、カスタム投稿タイプについて404を見ました。
これを実行しても404が表示される場合は、サーバー構成の問題です。あなたが「シングルwpse」を見るならば、それはあなたのテーマとは違う何かです。カスタム投稿タイプのスラッグの代わりにカスタム投稿タイプのラベルを使用しているのではないでしょうか。