web-dev-qa-db-ja.com

サブメニューでログアウトリンクに変更するための既存のログイン

私は子供をテーマにした12を使っています。私のメインナビゲーションメニューに、私のアカウントのためのリンクがあり、そこには変更されたwp-login.phpにリダイレクトする「ログイン/登録」リンクのあるサブメニューがあります。ユーザーがログインしているときに、「ログイン/登録」リンクを「ログアウト」リンクに変更することはできますか?それが可能であるならば、あなたは私がこれを達成することができる方法を知っているか、または私を正しい方向に向けるか?

私がオンラインで見つけたことはすべて、メインメニューにログイン/ログアウトリンクを追加することです。 「マイアカウント」サブメニューにはもっと多くのリンクが追加されるので、メニューをそのままにしておきたいのですが。

これが適切かどうかはわかりませんが、Wordpressのメニューを使用してサブメニューを作成し、それをwp-login.phpにリダイレクトするためのカスタムリンクを作成しました。

ありがとうございました

1
Michele

これが私が1つのクライアントのためにそれをどうにか設定する方法です。このコード(テーマのfunctions.phpに入るはずです)は、 'Login'というタイトルの既存のメニュー項目があると想定しています。うまくいくが最良の方法ではないかもしれないので、批評は歓迎される。

function wpse0520_modify_login_menu_item( $item ) {

    if(isset($item->title)){
        if( $item->title =='Login' ) {
            if(is_user_logged_in()){
                $item->url = wp_logout_url( get_permalink() );
                $item->title = 'Logout';
            } else {
                $item->url = site_url( 'login' );
            }
        } elseif ( $item->title =='Logout' ) {
            if(!is_user_logged_in()){
                $item->url = site_url( 'login' );
                $item->title = 'Login';
            } else {
                $item->url = wp_logout_url( get_permalink() );
            }
        }
    }
    return $item;
}
add_filter( 'wp_setup_nav_menu_item', 'wpse0520_modify_login_menu_item' );
3
montrealist