自定义永久链接选项不起作用,忽略自定义结构并使用 post-name
Custom permalink option not works, custom structure ignored and post-name used
在带有 Wordpress 的域根的 /wp-admin/options-permalink.php
(和 no .htaccess
),第一个选项,即标准选项,正在运行, http://www.example.com/?p=123
所以我认为可以在自定义选项中重现(仅重现)完全相同的东西...我尝试了 /?p=%post_id%
、?p=%post_id%
和许多其他的并且总是效果是navigation as /post-name/
not ?p=id
...所以,是行不通的? "Custom structure" 选项的表单框中 copy/paste 究竟需要什么?
我正在使用新的 wordpress v4.4
PS:https://codex.wordpress.org/Settings_Permalinks_Screen
处无线索
注意事项
为什么?
因为 "Custom permalink" 不起作用....或者,事实上,它在 Wordpress 上不起作用?
这是一个技术证明,工作时我可以做任何事情。
示例:需要哈希,?p=%post_id%#post-%post_id%
非常重要,用于跳转 幻灯片放映 ,以及滚动到页面标题。
在此示例中,问题不是某种 Apache 权限或 重写模式 ,?p=123#post-123
在任何上下文中都可以正常工作(!),因此,Wordpress 必须符合要求 "Custom permalink".
这是一个有趣的问题,但几乎所有你想要的都不可能。
使用 %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++;
}
使用“#”:
在wp-admin/options-permalink.php
中,当wp保存用户输入时我们有这行代码:
$permalink_structure = preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $permalink_structure ) );
str_replace
无法使用 `#' 字符。
那个画面的用途:
Wordpress 使用该配置屏幕 (1) 让用户选择是否使用漂亮的链接,以及 (2) 让用户有机会选择他的 posts 永久链接结构体。 Worpress 本身会处理大量无法更改的重写规则,除非您使用它 url rewrite functions。例如,页面和自定义帖子的处理方式不同。
您可以尝试将 /index.php?p=%post_id&var=%post_id%
添加为自定义结构以查看魔法(未)发生,但请记住:它仅适用于帖子。
希望对您有所帮助。
在带有 Wordpress 的域根的 /wp-admin/options-permalink.php
(和 no .htaccess
),第一个选项,即标准选项,正在运行, http://www.example.com/?p=123
所以我认为可以在自定义选项中重现(仅重现)完全相同的东西...我尝试了 /?p=%post_id%
、?p=%post_id%
和许多其他的并且总是效果是navigation as /post-name/
not ?p=id
...所以,是行不通的? "Custom structure" 选项的表单框中 copy/paste 究竟需要什么?
我正在使用新的 wordpress v4.4
PS:https://codex.wordpress.org/Settings_Permalinks_Screen
处无线索注意事项
为什么?
因为 "Custom permalink" 不起作用....或者,事实上,它在 Wordpress 上不起作用?
这是一个技术证明,工作时我可以做任何事情。
示例:需要哈希,?p=%post_id%#post-%post_id%
非常重要,用于跳转 幻灯片放映 ,以及滚动到页面标题。
在此示例中,问题不是某种 Apache 权限或 重写模式 ,?p=123#post-123
在任何上下文中都可以正常工作(!),因此,Wordpress 必须符合要求 "Custom permalink".
这是一个有趣的问题,但几乎所有你想要的都不可能。
使用 %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++; }
使用“#”:
在
wp-admin/options-permalink.php
中,当wp保存用户输入时我们有这行代码:$permalink_structure = preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $permalink_structure ) );
str_replace
无法使用 `#' 字符。那个画面的用途:
Wordpress 使用该配置屏幕 (1) 让用户选择是否使用漂亮的链接,以及 (2) 让用户有机会选择他的 posts 永久链接结构体。 Worpress 本身会处理大量无法更改的重写规则,除非您使用它 url rewrite functions。例如,页面和自定义帖子的处理方式不同。
您可以尝试将 /index.php?p=%post_id&var=%post_id%
添加为自定义结构以查看魔法(未)发生,但请记住:它仅适用于帖子。
希望对您有所帮助。