web-dev-qa-db-fra.com

UberMenu liste les publications de l'utilisateur actuel en tant qu'éléments de menu

J'essaie de transformer les messages des utilisateurs en éléments de menu, sans succès.

Voici ce que j'ai jusqu'à présent, mais je ne travaille pas. Je voudrais utiliser le contenu personnalisé avancé en ajoutant un shortcode.

add_shortcode( 'current-posts' , 'ss_get_current_posts' );
function ss_get_current_posts(){
global $current_user;
get_currentuserinfo();
$author_query = array('posts_per_page' => '-1','author' => $current_user->ID);
$author_posts = new WP_Query($author_query);
while ($author_posts->have_posts()) : $author_posts->the_post();
    $list = '<ul class="ubermenu-submenu ubermenu-submenu-id-122-col-0 ubermenu-submenu-type-stack">';
    $list .= '<a class="ubermenu-target ubermenu-target-with-icon ubermenu-item-layout-icon_left" href="';
    $list .= the_permalink();
    $list .= '" title="';
    $list .= the_title_attribute();
    $list .= '"><span class="ubermenu-target-title ubermenu-target-text">';
    $list .= the_title();
    $list .= '</span></a></ul>';                 
endwhile;
return $list;
}

Je peux voir la liste, mais pas sous forme de liens dans le sous-menu. Quelle est la bonne façon de faire cela?

1
Fid

the_permalink(), the_title() par défaut echo leur valeur. Si vous souhaitez stocker cette valeur dans une variable, vous devez plutôt remplacer les valeurs par return. get_the_permalink(), get_the_title() sont deux fonctions similaires qui return la valeur au lieu de echo.

Donc, votre nouveau code peut ressembler à quelque chose comme ça:

$list = '<li class="ubermenu-submenu ubermenu-submenu-id-122-col-0 ubermenu-submenu-type-stack">';
$list .= '<a class="ubermenu-target ubermenu-target-with-icon ubermenu-item-layout-icon_left" href="';
$list .= get_the_permalink();
$list .= '" title="';
$list .= get_the_title();
$list .= '"><span class="ubermenu-target-title ubermenu-target-text">';
$list .= get_the_title();
$list .= '</span></a></li>';
2
ngearing