UPDATED!
我正在根据一些教程为WordPress开发一个主题。主页运行良好,加载自定义帖子类型的帖子,查看cpt内容的页面也遵循Wordpress命名法:single-{name cpt}。php。
问题是当我创建一个普通页面时。输入页面的URL时,错误页面显示404。php。
我已经刷新了链接结构,并验证了。htaccess正确。
可能发生的情况,使其无法加载页面。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%/
UPDATED!
创建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的目录“/”?
SO网友:Nathan Johnson
要确定服务器设置或主题是否有问题,可以编写一个非常简单的主题,显示自定义帖子类型的不同结果。
我只是尝试了以下主题:
风格css
/**
* Theme Name: WPSE
*/
功能。php
<?php
function wpse_init() {
register_post_type( \'wpse\', array(
\'labels\' => array(
\'name\' => \'wpse\',
),
\'public\' => true,
) );
}
add_action( \'init\', \'wpse_init\' );
索引。php
<?php
echo \'index\';
单个wpse。php
<?php
echo \'single-wpse\';
然后,我创建了一个新的wpse自定义post类型,其中包含一个slug“test”。当我在浏览器中导航到
/wpse/test
我看到一个页面如预期的那样写着“单wpse”。
注意:切换主题后,我需要刷新重写规则,否则我会在自定义帖子类型上看到404。
如果执行此操作后仍看到404,则这是服务器配置问题。如果你看到“单一wpse”,那么你的主题就有问题了。我猜您可能使用的是自定义post type标签,而不是自定义post type slug。