@ymk11111

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【Wordpress】bbpressでログインフォームが表示されないです。

###実現したいこと
・ヘッダーに、ログインボタンを設置したいです。
(ログイン前は「ログイン/新規登録」 ログイン中は「ログアウト」を表示)

###前提
現在、bbpressを使って掲示板を自サイトに作成しています。
Wordpressのテーマはcocoonです。
本来、bbpressには、標準でショートコードが備わっていると思いますが

・[bbp-login]  ログイン画面を表示
・[bbp-register]  登録画面を表示
・[bbp-lost-pass]  パスワードを忘れた場合の画面を表示

上記3つが、どうしても反映されません。
(ショートコードを入れてプレビューをしても、何も表示されません。)

下記のような、他のショートコードは普通に使えます。

・[bbp-search]  検索フォームを表示
・[bbp-search-form]  テンプレートから検索フォームを表示
・[bbp-stats]  フォーラムの統計情報を表示

###追記したコード

●ショートコードを自作しました。(function.php)

//ログイン・新規登録・ログアウト ショートコード

function my_login_link() {
    return '<a href="' . esc_url( wp_login_url() ) . '">ログイン</a>';
}
add_shortcode( 'login_link', 'my_login_link' );

function my_register_link() {
    return '<a href="' . esc_url( wp_registration_url() ) . '">新規登録</a>';
}
add_shortcode( 'register_link', 'my_register_link' );

function my_logout_link() {
return '<a href="' . esc_url( wp_logout_url() ) . '">ログアウト</a>';
}
add_shortcode( 'logout_link', 'my_logout_link' );

###試したこと

前述したコードで、ログイン・新規登録・ログアウト ボタン自体のショートコードは作成できましたが、肝心の『ログイン前は「ログイン/新規登録」 ログイン中は「ログアウト」を表示』が実現できていません。
下記パターン①②をhead.phpへ記述しましたが、「ログイン・ログアウト・新規登録」のすべてのボタンが表示されてしまいます。
(ログイン状態を検知できていない?)

パターン①

<?php if ( is_user_logged_in() ) : ?>
  <a href="<?php echo wp_logout_url( home_url() ); ?>">ログアウト</a>
<?php else : ?>
  <a href="<?php echo wp_login_url( get_permalink() ); ?>">ログイン</a>
  <a href="<?php echo wp_registration_url(); ?>">新規登録</a>
<?php endif; ?>

パターン②

<div class="wp-block-search__inside-wrapper" style="width:10%; margin-right:20px;">
    <?php if ( is_user_logged_in() ) { ?>
        <div>
            <a href="<?php echo wp_logout_url(); ?>" class="btn-simple-border">ログアウト</a>
        </div>
    <?php } else { ?>
        <div style="display:flex; align-items:center; margin-right:10px;">
            <a href="<?php echo wp_login_url(); ?>" class="btn-simple-border">ログイン</a>
        </div>
        <div>
            <a href="<?php echo wp_registration_url(); ?>" class="btn-simple-border">新規登録</a>
        </div>
    <?php } ?>
</div>

###補足
ショートコードがうまくいかなかった時点で、プラグインを全て(bbpress以外)を無効化して試してみましたが、変化ありませんでした。

■bbpress
バージョン 2.6.9

■cocoon
WordPressバージョン:6.2
PHPバージョン:7.4.33
ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
サーバーソフト:Apache
サーバープロトコル:HTTP/1.1
言語:ja-JP,ja;q=0.9
テーマ名:Cocoon
バージョン:2.5.9
カテゴリー数:7
タグ数:74
ユーザー数:1

0 likes

1Answer

下記パターン①②をhead.phpへ記述しましたが、「ログイン・ログアウト・新規登録」のすべてのボタンが表示されてしまいます。

念のため、下記2点をお試しください。
・画面のスクショ
・「ログアウト」や「ログイン」のテキストを変更して反映されるか確認

0Like

Comments

  1. @ymk11111

    Questioner

    コメントありがとうございます。
    すみません、画面のスクショはないです。
    テキストを変えてやってみたところ
    変更後テキスト(ボタン形式でない)が表示されました。
    現在、bbpressとwpusermanagerのプラグインを入れていますが
    ログインに関するショートコード
    [bbp-login]
    [login_form]
    [wpum_login]
    のいずれも非表示です。
    他のショートコードは読み込みます。

    ウィジェットでサイドバーにはログインフォームを追加できたので
    渋々それでやろうかと思っております。。

Your answer might help someone💌