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はメニューの場所によって異なります(たとえば、トップメニュー、メインメニュー、フッタメニューなど)、テーマによって少しずつ名前が異なります。
たとえば、人気の多目的テーマの一つである 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クライアントを使用する方法は、 ここを参照してください。
上記の方法は、プラグインを使用せずに行うことができる利点があるが、初心者には難しいことができます。 上記の方法が困難な場合、プラグインを使用してログインすると、メニューがログアウトで、ログアウトすると、ログインに自動的に変わるようにする方法も可能です。 詳細については、 ログインすると、ログインメニューがログアウトメニューに切り替わるようにする 文を参考にしてください。
もしかしたら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を確認する方法を追加しましょう。
こんにちは^^
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ワードクラッカーですね!
ありがとうございます。 良い夜を持って〜^^
問題が解決されてよかったですね。
楽しい夜の時間になってください。
たくさん助けてくれてありがとう :)
ブログを訪問していただきありがとうございます。 楽しい一日を^^
使用するテーマのfunctions.phpに上記のコードを挿入して、ロケーションパラメータの値を入れてくれた何も出ません。〓〓私がよく分からなくてパイプさらにくれるよまたありますか?
こんにちは?
もしかしたら、エラーが発生していますか?
エラーが発生した場合は、関数ファイルに正しく入れなくて、または、文法的にエラーが発生したことがあります。
エラーは発生せず、メニューには変動がない場合は、まずキャッシュを削除してみ、
上記のコードで、下の部分(二つ)を削除して見てテストしてみてください。
メニューに正しく追加されるとしたら theme_locationが間違っています。
theme_locationが間違っていたのが正しいです。 メインメニューはprimaryです。 今わかりました。 ありがとうございます。
良い情報ありがとうございます。
あまりにも初歩だから、どのファイルphpファイルを修正するかどうか分からないですね。
こんにちは?
私の個人的ブログを訪問していただきありがとうございます。
使用中のテーマの関数ファイルに追加していただければされます。
FTPを使用してください。