我在外观->菜单中创建了一个菜单。其中一项是在主题定制器中设置的公司电话号码。我有一个返回该数字的快捷码:
/* shortcode to display phone number */
function getPhone()
{
return get_theme_mod( \'contact_phone_data\');;
}
/* Add shortcode */
add_shortcode(\'contact_phone\', \'getPhone\');
有没有办法在外观->菜单UI中使用此选项?当我进入时
[contact_phone]
在菜单项的“导航标签”字段中,它(如预期的那样)显示实际字符串,而不是执行短代码。
是否有方法指示该字段的值应作为快捷码执行?如果没有,是否有在WP中处理此类事情的标准方法?
SO网友:Damien Carbery
有人在高级WordPress facebook群中发布了类似的问题。我建议在菜单项的url中添加一些标记文本,然后在渲染期间将其替换掉。
add_filter( \'nav_menu_link_attributes\', \'dcwd_nav_menu_link_attributes\', 10, 4 );
function dcwd_nav_menu_link_attributes( $atts, $item, $args, $depth ) {
// If PHONE_NUMBER is found then change it.
if ( false !== strpos( $atts[ \'href\' ], \'PHONE_NUMBER\' ) ) {
$atts[ \'href\' ] = getPhone();
}
return $atts;
}
我还将其发布到
pastebin