自定义永久链接选项不起作用,忽略自定义结构并使用后名称

时间:2016-02-29 17:57:59

标签: wordpress permalinks

在使用Wordpress的域根/wp-admin/options-permalink.php处( .htaccess),第一个选项(标准选项)正常运行,http://www.example.com/?p=123

所以我认为可以在自定义选项中重现(仅重现)完全相同的东西...我尝试/?p=%post_id%?p=%post_id%和许多其他的东西,总是效果导航为/post-name/不是?p=id ...所以,不起作用?我需要在"自定义结构"的表单框中复制/粘贴到底是什么?选项?

我正在使用新的wordpress,v4.4

PS:https://codex.wordpress.org/Settings_Permalinks_Screen

没有线索

注意

为什么?

因为"自定义永久链接"不工作....或者,事实上,它不适用于Wordpress?

这是一个技术证明,在工作时我可以做任何事情。
示例:需要哈希,?p=%post_id%#post-%post_id%非常重要,用于跳转幻灯片放映,以及scrool到页面标题。

在此示例中问题不是一种Apache权限或重写模式?p=123#post-123在任何上下文中工作正常(!),因此,Wordpress必须符合所需的& #34;自定义固定链接"。

1 个答案:

答案 0 :(得分:2)

这是一个有趣的问题,但几乎所有你想要的东西都是不可能的。

  1. 使用%post_id%两次:

    wp-includes/class-wp-rewrite.php,第558行(WP 4.4),我们有一个for循环,如果已找到并使用%post_id%,则会中断。代码是:

    preg_match_all('/%.+?%/', $this->permalink_structure, $tokens);
    $tok_index = 1;
    foreach ( (array) $tokens[0] as $token) {
        if ( '%post_id%' == $token && ($tok_index <= 3) ) {
            $front = $front . 'date/';
            break;
        }
        $tok_index++;
    }
    
  2. 使用&#39;#&#39;:

    wp-admin/options-permalink.php中,当wp保存用户输入时,我们有这行代码:

    $permalink_structure = preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $permalink_structure ) );
    

    str_replace使用`#&#39;炭。

  3. 该屏幕的目的:

    Wordpress使用该配置屏幕(1)为用户提供使用漂亮链接的选项,以及(2)让用户有机会选择他的帖子永久链接结构。 Worpress本身处理了许多不可能改变的重写规则,除非你使用它url rewrite functions。例如,页面和自定义帖子的处理方式不同。

  4. 您可以尝试添加/index.php?p=%post_id&var=%post_id%作为自定义结构,以查看发生的魔法(不是),但请记住:它只适用于帖子。

    希望它有所帮助。