WordPress メニューへのログイン/ログアウトメニュー項目を追加する方法(プラグインを無効にする)

Last Updated: 2020 年 07 月 16 日 13のコメント

WordPress特定のメニューナビゲーションにログイン/ログアウトメニューエントリを追加する場合に、この記事で説明する方法を使用することができます。 プラグインを使用せずにログイン時のメニューにログアウトを、ログアウト時のメニューにログインを表示したい場合に便利です。

[この記事は、2015年9月に作成されたが文を新たに修正して再発行されました。 ]

プラグインを使用せずに WordPress メニューへのログイン/ログアウトメニュー項目を追加する方法

プラグインを使用せずにログイン/ログアウトメニュー項目をメニューに表示したい場合は、次のコードを WordPress テーマ関数ファイルに追加します。

// 로그인 시 로그아웃 메뉴를 표시하고 로그아웃 시 로그인 메뉴 표시하기
// Show Login menu item when logged out and show Logout menu item when logged in
add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 );
function add_loginout_link( $items, $args ) {
if (is_user_logged_in() && $args->theme_location == 'primary') {
$items .= '<li><a href="'. wp_logout_url() .'">로그아웃</a></li>';
}
elseif (!is_user_logged_in() && $args->theme_location == 'primary') {
$items .= '<li><a href="'. site_url('wp-login.php') .'">로그인</a></li>';
}
return $items;
}

上記の機能を使用すると、ログアウトユーザーには「ログイン」メニュー項目が表示され、ログインユーザーには「ログアウト」 メニュー項目が表示されます。 上記の theme_ロケーション パラメータの値を対応するナビゲーションに合わせて変更するようにします(例えば、 メイン, 二次).

theme_ロケーション

theme_locationはメニューの場所によって異なります(たとえば、トップメニュー、メインメニュー、フッタメニューなど)、テーマによって少しずつ名前が異なります。

プラグインを使用せずに WordPress メニューへのログイン/ログアウトメニュー項目を追加する
FlatsomeテーマのTop MenuとMain Menu

たとえば、人気の多目的テーマの一つである Enfold (Enfold)テーマの場合、 theme_location を使用できます。

  • avia(Enfold メインメニュー)
  • avia1(Enfold 補助メニュー)
  • avia2(Enfold フッターメニュー)

인기 WooCommerce テーマの一つである Flatsome(フラット島)テーマの theme_locationは次のようになります。

  • primary(メインメニュー)
  • primary_mobile(モバイルメインメニュー)
  • footer(フッターメニュー)
  • top_bar_nav(上部メニュー)
  • my_account(マイアカウントメニュー)

ベストセラーのテーマである Avada (Avada)テーマの theme_locationは次のようになります。

  • main_navigation(メインナビゲーション)
  • top_navigation(上部ナビゲーション)
  • mobile_navigation(モバイルナビゲーション)
  • 404_pages(404 Useful Pages)
  • sticky_navigation(固定ヘッダナビゲーション)

このブログに現在使用されている GeneratePress テーマの場合 theme_locationが使用されます。

  • primary(メインメニュー)
  • secondary(補助メニュー)
  • slideout(Off Canvasメニュー)

子テーマを作って、コードを入力してください

上記のコードは、使用している WordPress テーマの関数ファイル(のfunctions.php)に追加してくれればされ、可能な場合チャイルドテーマ(子テーマ)を作成作業してください。 詳細については、 ここを参照してみてください。

ファイルを修正するために、FTPにアクセスできる必要があります。 WordPressでFTPクライアントを使用する方法は、 ここを参照してください。

上記の方法は、プラグインを使用せずに行うことができる利点があるが、初心者には難しいことができます。 上記の方法が困難な場合、プラグインを使用してログインすると、メニューがログアウトで、ログアウトすると、ログインに自動的に変わるようにする方法も可能です。 詳細については、 ログインすると、ログインメニューがログアウトメニューに切り替わるようにする 文を参考にしてください。

参照


13のコメント

コメント

  1. もしかしたらuniconテーマの場合には、メインページに浮かべたい場合
    テーマロケーションの値は何ですか...ㅠㅠ

    応答
    • ユニコーンテーマ(Unicon Theme)は Themeforestで販売される有料 WordPress テーマですね。

      有料なので、私は確認はできませんが、bbPressフォーラム文(https://bbpress.org/forums/topic/adding-profile-link-to-menu/ )を見るとユニコーンテーマの theme_locationの値はおそらく次のようになります。

      main_navigation - > Main Navigation(メインナビゲーション)
      footer_navigation - > Footer Navigation(フッターナビゲーション)
      topbar_navigation - > Topbar Navigation(トプバナビゲーション)

      よくないと、教えてください。

      時間が飛ぶとき theme_locationを確認する方法を追加しましょう。

      応答
    • こんにちは?

      ブログを訪問していただきありがとうございます。

      Enfold テーマ(https://www.thewordcracker.com/go/enfold )を使用していらっしゃいますね。
      Enfold テーマを見てみると、おそらく次のいずれかになります。

      - avia
      - avia1
      - avia2
      - avia3

      一度テストして見てもされるか確認してください。

      応答
      • aviaにしたところ、メニューに反映ね!
        やはり WordPressワードクラッカーですね!
        ありがとうございます。 良い夜を持って〜^^

  2. 使用するテーマのfunctions.phpに上記のコードを挿入して、ロケーションパラメータの値を入れてくれた何も出ません。〓〓私がよく分からなくてパイプさらにくれるよまたありますか?

    応答
    • こんにちは?

      もしかしたら、エラーが発生していますか?

      エラーが発生した場合は、関数ファイルに正しく入れなくて、または、文法的にエラーが発生したことがあります。

      エラーは発生せず、メニューには変動がない場合は、まずキャッシュを削除してみ、 

      上記のコードで、下の部分(二つ)を削除して見てテストしてみてください。

      && $args->theme_location == 'primary'

      メニューに正しく追加されるとしたら theme_locationが間違っています。

      応答
      •  theme_locationが間違っていたのが正しいです。 メインメニューはprimaryです。 今わかりました。 ありがとうございます。 

  3. 良い情報ありがとうございます。

    あまりにも初歩だから、どのファイルphpファイルを修正するかどうか分からないですね。

    応答
    • こんにちは?
      私の個人的ブログを訪問していただきありがとうございます。
      使用中のテーマの関数ファイルに追加していただければされます。
      FTPを使用してください。

      応答