WordPress自定义菜单可以添加自定义链接,也就是设置一个自定义的url作为菜单,但是默认个自定义链接打开方式是当前页面跳转,如何给这个链接设置target=’_blank’属性呢?
在WordPress源码中找到可以改变菜单属性的一个filter,位于D:xampphtdocswpwp-includesnav-menu-template.php:
/**
* Filter the sorted list of menu item objects before generating the menu's HTML.
*
* @since 3.1.0
*
* @param array $sorted_menu_items The menu items, sorted by each menu item's menu order.
* @param object $args An object containing wp_nav_menu() arguments.
*/
$sorted_menu_items = apply_filters( 'wp_nav_menu_objects', $sorted_menu_items, $args );
这个filter的名字叫做wp_nav_menu_objects,可以在主题的functions中添加如下代码:
//菜单自定义链接使用target='_blank'
function add_custom_url_target_attr($sorted_menu_items)
{
foreach ( $sorted_menu_items as $menu ) {
if( $menu->type = 'custom' ){
$menu->target = '_blank';
}
}
return $sorted_menu_items;
}
add_filter('wp_nav_menu_objects', 'add_custom_url_target_attr');
通过这个wp_nav_menu_objects的hook(钩子),就实现了新窗口打开这个菜单链接。
其实,我们可以把要往functions.php中添加的函数写到一个自定义插件中,这个插件专门放我们自己的function,这样更改主题也不用管主题的functions.php文件。
在插件目录plugin目录新建一个文件夹叫myfunc,里面新建一个myfun.php文件:
/**
* @package myfunc
* @version 1.0
*/
//菜单自定义链接使用target='_blank'
function add_custom_url_target_attr($sorted_menu_items)
{
foreach ( $sorted_menu_items as $menu ) {
if( $menu->type = 'custom' ){
$menu->target = '_blank';
}
}
return $sorted_menu_items;
}
add_filter('wp_nav_menu_objects', 'add_custom_url_target_attr');
这样就是一个最简单的插件了,注意myfun.php前面的注释一定要按照这样的格式写,WordPress通过这个注释来识别是不是一个插件的入口,有新的本来需要放入主题functios.php的函数可以放到这个文件后面加。
火柴人绳索英雄2无限金币版 (Stickman Rope Hero 2)安卓版v2.2v3.4.2
下载奥特曼之格斗超人内测版本 安卓最新版v11.0.0
下载奥特曼之格斗超人百度版 安卓版v11.0.0
下载奥特曼之格斗超人4399游戏盒版 最新安卓版v11.0.0
下载德凯奥特曼D闪光剑模拟器 安卓版v1.0
德凯奥特曼D闪光剑模拟器是一个非常有趣的奥特曼变身模拟器,可
亚刻觉醒器 安卓版v1.1
亚刻觉醒器模拟器是一个非常有趣的奥特曼变身模拟器,为喜欢亚刻
海上餐厅无限金币版 v1.0
海上餐厅免广告版是游戏的破解版本,在该版本中为玩家去除了广告
阿西美女室友竟然全解锁版 v1.0.2
阿西美女室友竟然内置菜单版是游戏的破解版本,在该版本中为玩家
我是大东家正版 最新版v1.2.738
我是大东家正版是一款放置类模拟经营手游,玩家将回到古代成为家