WordPress不加载page.php,返回404.php

时间:2018-04-04 作者:Mike

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的目录“/”?

1 个回复
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。

结束