web-dev-qa-db-ja.com

UberMenuは現在のユーザーの投稿をメニュー項目として一覧表示します

私は運なしで、ユーザーの投稿をメニュー項目にしようとしています。

これが私のこれまでのところですが、うまくいきません。ショートコードを追加してAdvancedカスタムコンテンツを使用したいです。

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;
}

リストは実際には表示できますが、サブメニュー内のリンクとしては表示されません。これを行う正しい方法は何ですか?

1
Fid

the_permalink()the_title()のデフォルト値はechoです。その値を変数に格納したい場合は、代わりに値をreturnにする必要があります。 get_the_permalink()get_the_title()は、returnの代わりにechoの値に似た2つの関数です。

だからあなたの新しいコードはこんな感じになるでしょう:

$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