添加跨度功能

问题描述:

我有什么:

,基于用户是否输入/输出相应的登录/退出链接输出日志PHP函数。添加跨度功能

<a href="foo">bar</a> 

我需要什么:

我需要在锚元素中的链接文本包裹的跨度。

<a href="foo"><span>bar</span></a> 

我的代码:

add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2); 
function add_login_logout_link($items, $args) { 

     ob_start(); 
     wp_loginout('index.php'); 
     $loginoutlink = ob_get_contents(); 
     ob_end_clean(); 

     $items .= '<li>'. $loginoutlink .'</li>'; 

    return $items; 
} 

我已检查wp_loginout()函数的潜在参数,但存在两个不适用:

<?php wp_loginout($redirect, $echo); ?> 

我的问题:

如何使用服务器端方法将span包裹在锚点内。我不想诉诸像JavaScript这样的客户端方法。

+0

为什么你不能只回显你需要的代码? –

+0

@AndrewWilson我需要的代码(链接)是通过调用wp_loginout()函数动态生成的。它可以自动执行多个步骤,包括检测用户是否登录/注销,输出相关链接和随机令牌以确保安全。这就是我使用函数返回输出而不是回显输出的原因。 –

+0

对不起,我不禁使用WordPress。 –

尝试,

wp_logout_url (string $redirect = '')函数,而不是wp_loginout('index.php')

例如,

ob_start(); 
    wp_logout_url('index.php'); 
    $logoutlink= ob_get_contents(); 
    ob_end_clean(); 

    $items .= '<a href="'.$logoutlink.'"'><span></span></a>; 

使用is_user_logged_in()检查天气用户登录或没有。

ob_start(); 
if (is_user_logged_in()) { 
    wp_logout_url('index.php'); 
} else { 
    site_url('index.php') 
} 
+0

谢谢。我并不知道你使用过的两个功能。 –

+1

很高兴我能帮上忙。 http://www.wpbeginner.com/wp-themes/how-to-add-custom-items-to-specific-wordpress-menus/,这可能会派上用场。 – Athikrishnan