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

  • Naver ブログを共有する
  • Naver バンドに共有する
  • Facebook 共有する
  • Twitter 共有する
  • 카카오스토리공유하기

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

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

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

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

// 로그인 시 로그아웃 메뉴를 표시하고 로그아웃 시 로그인 메뉴 표시하기
// 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_location パラメータの値を対応するナビゲーションに合わせて変更するようにします(例えば、 メイン, 二次).

theme_location

theme_locationは、メニューの位置によって異なり(例えば、上部のメニュー、メインメニュー、フッターメニューなど)、テーマに沿って名前が少しずつ異なります。

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

たとえば、人気の多目的テーマの一つである 円フォールド(Enfold)テーマの場合は、次のようなtheme_locationが使用できます。

  • avia(円フォールドメインメニュー)
  • avia1(円フォールド補助メニュー)
  • avia2(円フォールドフッターメニュー)

人気ウコマースのテーマの一つである Flatsome(フラット島)テーマのtheme_locationは次のとおりです。

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

ベストセラーのテーマである ああ海(Avada)テーマのtheme_locationは次のとおりです。

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

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

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

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

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

ファイルを修正するために、FTPにアクセスできる必要があります。 ワードプレスで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を確認する方法についてを追加します。

      応答
  2. こんにちは^^
    theme_location値を確認​​するには、どこですることができでしょうか...?
    primary、secondary、mainは、メインメニュー...どれを入力しても、メニューに反映さダメですね...
    https://uploads.disquscdn.com/images/dedb2c9f675d1373670985ad3cb4536ab61db20168b3e4e26aaf3b511e8e5bdb.png

    応答
    • こんにちは?

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

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

      - avia
      - avia1
      - avia2
      - avia3

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

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

      • 問題が解決されてよかったですね。

        楽しい夜の時間になってください。

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

    応答
    • こんにちは?

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

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

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

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

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

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

      応答
      • theme_locationが間違っていたのが適合します。私は外観 - メニューからトップメニューバーtop_menuにしたからといってlocationにtop_menu入れてくれたsecondaryに入れてですね。 メインメニューは、primaryんです。 今分かりましたね。 ありがとうございます。

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

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

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

      応答