为什么我不能将固定链接“360”保存为一个页面?

时间:2015-07-24 作者:Gasim

我试图用permalink“360”保存我的页面,但出于某种原因,WP不断将permalink更新为“360-2”。我已经检查了我的WP中的所有地方,没有使用permalink“360”的页面或帖子。360是内部的永久链接吗?如果没有,问题是什么?

3 个回复
最合适的回答,由SO网友:denis.stoyanov 整理而成

问题在于只使用数字作为URL。Here is a forum thread 在讨论这个问题的WP中。我会引用奥托的话:

WordPress 2.3及以上版本不允许文章或页面段塞为全数字。这是因为URL方案将与多页帖子冲突。

没有解决办法。把它们换成别的。

或者,如果放弃了onmulti页面发布,则存在一个插件来允许此操作:http://wordpress.org/extend/plugins/allow-numeric-stubs/

更多信息请点击此处:http://trac.wordpress.org/ticket/5305

SO网友:birgire

如果我们检查一下sourcewp_unique_post_slug() 函数,然后我们可以看到,这对于分层的帖子类型是应该的,而不是nav_menu_item.

如果我们试一下,比如鼻涕虫360page360, 然后-n 将显示slug后缀。

我们可以玩,例如:

echo wp_unique_post_slug( 
    $slug        = \'360\', 
    $post_id     = \'\', 
    $post_status = \'\', 
    $post_type   = \'page\' 
);

echo wp_unique_post_slug( 
    $slug        = \'page360\', 
    $post_id     = \'\', 
    $post_status = \'\', 
    $post_type   = \'page\' 
);
看到这一点。

其中一个“坏段塞”检查,在wp_unique_post_slug(), 这是一个:

preg_match( "@^($wp_rewrite->pagination_base)?\\d+$@", $slug ) 
与您的情况相符:

preg_match( "@^(page)?\\d+$@", \'360\' ) 
因此产生了slug后缀。

您也可以在此处使用它:

https://regex101.com/r/jF3kC6/1

注意,可以通过wp_unique_post_slug 过滤器,但这样做应该非常小心。

SO网友:khandaniel

如果你不喜欢简单工作的插件,我会这样做:

// Fix issue with digits can\'t be slug
add_filter(\'wp_unique_post_slug\', \'my_allow_numeric_slug\', 20, 6);

function my_allow_numeric_slug($slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug)
{
    global $wpdb;

    if (preg_match("@^\\d+-2$@", $slug) && $post_type !== \'attachment\') {
        $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND " .
        "post_type IN ( %s, \'attachment\' ) AND ID != %d AND post_parent = %d LIMIT 1";
        $better_slug = str_replace(\'-2\', \'\', $slug);
        $post_name_check = $wpdb->get_var($wpdb->prepare($check_sql, $better_slug, $post_type, $post_ID, $post_parent));

        if (!$post_name_check) {
            return $better_slug;
        }
    }
    return $slug;
}
"@^\\d+-2$@" 将数字段塞与匹配-2 后缀。

实际上我只是检查一下-2 如果在另一种情况下添加了原因,则表示您已经添加了,例如:。360-2 佩奇,这对我来说似乎很奇怪,但我想你已经明白了。

结束

相关推荐

Pretty Permalinks

我创建了自己的搜索功能,基本上可以找到与输入的邮政编码最近的商店。我的搜索URL当前如下所示http://www.example.com/stores?searchTerm=London, 这并不是真正的SEO友好。我希望我的URL采用以下格式-http://www.example.com/stores/London, 然而,由于我缺乏WordPress URL重写工作的知识,我正在努力解决这个问题,希望能得到一些帮助来解决这个问题。Stores是一个循环显示结果的页面。如果有人对如何做到这一点有任何想法