自定义添加_重写_规则和固定链接

时间:2017-03-26 作者:daniel

我需要转换此url:http://localhost/wordpress/mp3s/mp3/name?playlist=123

对此:http://localhost/wordpress/mp3s/mp3/name/playlist/123

有可能吗?

以下是我的尝试:

add_rewrite_rule( \'^mp3s/mp3/([^/]+)/playlist/([^/]+)/?$\',
    \'index.php?songs=$matches[1]&playlist=$matches[2]\',
\'top\' );

1 个回复
最合适的回答,由SO网友:MahdiY 整理而成

将此代码添加到functions.php 文件:

function custom_rewrite_basic() {
    add_rewrite_rule(\'^mp3s/mp3/([^/]+)/playlist/([0-9]+)/?\', \'index.php?page_id={PAGE_ID}&songs=$matches[1]&playlist=$matches[2]\', \'top\');
}

add_action(\'init\', \'custom_rewrite_basic\');

function custom_rewrite_tag() {
    add_rewrite_tag(\'%songs%\', \'([^&]+)\');
    add_rewrite_tag(\'%playlist%\', \'([^&]+)\');
}

add_action(\'init\', \'custom_rewrite_basic\');
创建名为“我的自定义模板”的文件。主题根目录中的php,如下所示:

<?php
/**
 * Template Name: Music
 */
get_header(); 

global $wp_query;
echo \'Songs : \' . $wp_query->query_vars[\'songs\'];
echo \'<br />\';
echo \'Play List : \' . $wp_query->query_vars[\'playlist\'];
// ... more ...
get_footer(); 
?>
使用此模板创建页面并替换{PAGE_ID} 在第一个代码中使用内置页面ID。

然后,转到Setting -> Permalinks 然后单击Save Changes.

相关推荐

Permalinks - Archives

WordPress文档说:WordPress offers you the ability to create a custom URL structure for your permalinks and archives. https://codex.wordpress.org/Settings_Permalinks_Screen 我看到此屏幕将如何为特定帖子/页面创建永久链接,但我没有看到此设置屏幕上关于如何为存档帖子/页面创建链接的任何其他详细信息。有人能澄清一下吗?