除了19年12月31日的答案之外,我认为这个答案结合了这个网站上给出的多个答案。但由于这个网站喜欢复制而不是引用,我将给出一个可能的解决方案,包括今天的问题(根据我当前的屏幕,1小时前)。
function prefixed_redirect() {
global $wp;
if ( home_url( $wp->request ) == \'your_url\' ) { // or maybe something more specific.
require_once TEMPLATEPATH . \'/my-specific-template.php\';
}
}
add_action( \'template_redirect\', \'prefixed_redirect\' );
我尚未测试此代码,但有以下参考支持:
https://stackoverflow.com/questions/51028362/what-is-the-alternative-of-serverhttp-host-and-serverrequest-uri-for 和
How to load a new template page according to a particular URL?.
现在,在添加菜单的情况下,我有以下示例:
function prefixed_nav_menu_item( $items ) {
$user = wp_get_current_user();
$link = \'<li><a href="\' . get_permalink( $user>get( \'slug\' ) ) . \'">\' . $user->get( \'login\' ) . \'</a></li>\';
$items = $items . $link;
return $items;
}
add_filter( \'wp_nav_menu_items\', \'prefixed_nav_menu_item\' );
这也未经测试,但根据
https://developer.wordpress.org/reference/functions/wp_get_current_user/ 和
https://developer.wordpress.org/reference/classes/wp_user/ 它会指引你走向正确的方向。
可能您的特定主题在格式化菜单项时有一个预定义的功能,您应该对此进行研究(主题模板文件是一个很好的起点)。