固定链接和添加重写规则-错误404

时间:2013-04-19 作者:advalue

我想在一个单独的页面上有一个专门的模板,只针对特定类别(slug Shop)的帖子发表评论。示例:mysite。com/post-incatshops-->mysite。com/post-incatshops/comment

为此,我创建了不同的函数,并将其放入函数中。php。问题是,对于某些帖子,它会随机返回404错误。我的永久链接结构是:/%postname%。我正在使用插件WP No Category Base.

Monkeyman Rewrite Analyzer 此行中该类别中每个帖子的返回值

^我的帖子标题/评论p:16138

你能帮帮我,告诉我哪里错了吗?提前感谢

function setup_permastruct() {
add_rewrite_tag(\'%opinioni%\',\'([^/]+)\');
add_rewrite_tag(\'%codici-sconto%\',\'([^/]+)\');
}

function eg_add_rewrite_rules() {
  global $wp_rewrite;
  global $wp, $wpdb, $post;

    $loop = new WP_Query(array(\'post_type\' => \'post\',
                \'posts_per_page\' => -1,
                \'category_name\' => \'shops\',
                \'orderby\' => \'date\',
                \'order\' => \'DESC\')
        ); 
        while ( $loop->have_posts() ) : $loop->the_post();
            $custom = get_post_custom($post->ID);
            add_rewrite_rule( \'^\'.$post->post_name.\'/comment\', \'index.php?p=\'.$post->ID, \'top\' );

        endwhile;
        $loop = null;
        wp_reset_query();

        $wp_rewrite->flush_rules(false);
    }
    add_action( \'template_redirect\', \'eg_add_rewrite_rules\' );


function change_template_include( $t ) {
      $url = explode( \'/\', $_SERVER[\'REQUEST_URI\'] );
      $url = array_filter( $url );
      $url = array_pop( $url );
      if( $url == \'comment\' ) {
        $t = str_replace( \'/single.php\', \'/template-single-comment.php\', $t );
        }
      return $t;
    }
    add_filter( \'template_include\', \'change_template_include\',10, 1 );

1 个回复
SO网友:sirnornur

我也遇到了同样的问题,并找到了解决方案。据我目前所知,这个问题可能有两个原因:

WP无法识别您的重写规则,因为它们尚未缓存。你可以通过倾倒来检查get_option( \'rewrite_rules\' ); 如果您的规则确实被缓存,那么它们将在该选项中。要确保缓存重写规则,请确保调用:

global $wp_rewrite; 
$wp_rewrite->flush_rules(); 
服务器配置未正确设置为使用.htaccess 文件(用于Apache服务器)。一种简单的检查方法是键入一个在WordPress主机之后不存在的URL地址,例如。http://example.com/location-that-doesnt-exist. 如果服务器正确配置为使用.htaccess 文件,然后您将看到一个由WP主题设计的404页面。如果没有正确设置,那么您将看到服务器的默认404页面,并且它不会被您的WP主题设置样式。

结束

相关推荐

Taxonomy based permalinks

在我的网站上,我使用自己的分类法。我希望分类学与permalink相结合。因此,如果一个新闻页面有分类法,permalink就会改变。像这样:mysite。com/%custom\\u tax%/blog/%postname%,如果是一个页面,请点击:mysite。com/%custom\\u tax%/%postname%但如果没有我想要的分类法:mysite。com/blog/%postname%,如果它是一个页面:mysite。com/%postname%我怎样才能轻松地做到这一点?我已经设置了%c