「ログイン」タグアーカイブ

BuddyPressのサイドバーウィジェットのログイン文言変更「登録」→「新規登録」に WordPress BuddyPressカスタマイズメモ

BuddyPressのWigetの「登録」を「新規登録」にする

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになるので、できるだけわかりやすくしたい。


登録を
 ↓↓↓

新規登録に変えておく。
 

翻訳ファイルに変更を加える

poeditを使って、buddypressの翻訳ファイルを編集する必要がある。

poeditの入手方法と、基本の使い方は下記ページを参照。

【poeditのインストールと使い方】WordPressで「カテゴリ」を「カテゴリー」にしたい場合など

.poファイルを編集して.moファイルを作る。

今回変更したいのは、BuddyPressのウィジェットの「登録」なので…

wp-content/languages/pluginsのフォルダの中の
buddypress-ja.poファイルをFTPソフトでダウンロードして開く。

編集→検索で「登録」と入力して検索すると、

もろもろ出てくる。今回は文中の「登録」は無視して、1つの単語だけで「登録(元は英語のRegister)」である部分を見つける。

翻訳:の欄が「登録」になっているはずなので、「新規登録」と書き換えて、保存する。

この時に出力される.moファイルと合わせて、FTPソフトでアップロードして終了。

この記事も読まれています

ログイン時のみ一部メニューを非表示に(ログインしてる時だけ違うCSSを読み込ませてメニューを表示させる方法) WordPress BuddyPressカスタマイズメモ

WordPressで、ログインしてる人と、ログインしてない人で違うメニューを表示させる方法

 
WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。

ログイン後にのみCSSを読み込ませて、デザインや配置、表示非表示を切り替えたい場合など。


  ↓↓↓

 

メニューで、非ログイン時に非表示にするものにclass付けする

管理画面の「メニュー」で、「表示オプション」の中の「CSSクラス」のチェックボックスにチェックを入れる。

CSS class(オプション)の部分に、ログイン後非表示にしたいモノにだけ「loggedin」と書いておく。

ちなみに、class名は何でもいい。

 

functions.php へ記述

//ログイン時のみCSS適用

function loggedin_css() {
if ( ! is_user_logged_in() ) :
echo '<style type="text/css">li.loggedin {display: none;}</style>';
endif;
}
add_action( 'wp_head', 'loggedin_css');
if (!is_user_logged_in())

で、ログインしているユーザーにだけ、スタイルを読み込ませる。

ちなみに、この例では外部CSSではないが、下記のように外部CSSにして読み込ませても同じことができる。

function loggedin_css() {
if ( ! is_user_logged_in() ) :
echo '<link rel="stylesheet" type="text/css" href="https://..../xxx.css">';
endif;
}
add_action( 'wp_head', 'loggedin_css');

https://…./xxx.css の部分にCSSのパスとファイル名を記入しておくこと。

WordPress BuddyPressカスタマイズメモ 個別記事ページのコメントの編集ボタンを削除

ログイン中でもコメント編集ボタンを非表示

<追加したい機能>

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。

管理者以外では、編集者や投稿者であってもコメントの編集権限を剥奪したい。

ただし、自分自身のコメントの編集権は残したいので、全ての権限を剥奪はしない。

管理画面だけでなく、サイトフロントからも編集できるので、この「編集」リンクを削除する。
 

functions.php へ記述

//個別記事ページのコメント編集ボタンを削除

if (!current_user_can('administrator')) {
  add_filter( 'edit_comment_link', '__return_false');
}

管理者でも編集権を剥奪したいのであれば、

if (!current_user_can('administrator')) {

}

を消して、中の1行だけを記述しておけばOK。

WordPress BuddyPressカスタマイズメモ ログイン直後に管理画面ではなくサイトフロントへ飛ばす

WordPressでログイン直後に管理画面ではなく、トップページへ飛ばす方法

<追加したい機能>

WordPressのSNSプラグイン、BuddyPressのメンバーは、管理画面からだけでなく、サイトフロント(トップページとか)のログインウィジェットからログインする場合もある。

なので、ログイン後に管理画面に飛ばさず、そのままホームぺージ(サイトフロント)にとどまってもらいたい。
 

functions.php へ記述

//ログイン後もサイトフロントへ飛ばす

function login_redirect_page() {
 return home_url();
}
add_filter('login_redirect', 'login_redirect_page');
}

これで、login_redirect のフィルターに home_url を返すように設定するだけでいい。

なお、一般ユーザーではなく、管理者は管理画面に直接飛ばしたい場合は、

if ( ! current_user_can( 'administrator' ) ) {

}

で全体を囲めばOK。

【WordPressにログインできない場合の対処法】エラー:予期しない出力によりCookiesがブロックと言われる

急にWordpressにログインできなくなった時の原因と対処法

(ユーザー名とパスワードは間違ってないのに)

主なエラーメッセージはこんな感じ。

Warning: Cannot modify header information – headers already sent by (output started at /…サーバーパス/wp-includes/session.php:1) in /…サーバーパス/wp-login.php on line 425
最後の数字は色々ある。

エラー:予期しない出力により Cookies がブロックされました。ヘルプが必要な場合はこちらのドキュメンテーションを読むか、サポートフォーラムをご利用下さい。

ログインエラーの原因の特定

このエラーが出ている場合の原因を特定すれば、それぞれ対処できる。またブログのデータそのものは壊れていないので、心配はいらない。

1. functions.php の中の改行。
2. functions.php の中の echo が原因。
3. wp-config.php を UTF-8(BOMあり) で保存してしまった。
4. php.ini の設定が原因。
5. 外部からの悪意のある攻撃で nav-menu.php が書き換えられた。

1. 2. 3. については、自分でphpファイルを操作したり、テンプレートをカスタマイズした場合に発生する。

4. は、自分で設定を変更する、または自分で設定しなくても、サーバーの仕様が運営会社によって勝手に変更された場合に発生。

5. は、最近全然使ってなかったけど久しぶりにログインしようと思ったら、といった場合、つまりWordpressのバージョンが最新じゃない時に起こりやすい(特にWordpress4.4以前)。

 
 

1. functions.phpの中の改行が原因の場合の対処法

functions.phpの中の余分な改行、もしくは、header(“Location:….”); の前に改行が入ってるとダメ。

解決法 → functions.phpの該当しそうな改行を片っ端から消す。
ログインできないので、管理画面からではなく、FTPソフトなどを使って/wp-content/themes/テーマ名/functions.php のファイルを直接編集してアップロードしなおす必要がある。

 
 

2. functions.phpの中のechoが原因。

header(“Location:…”); の前に echo があるとダメ。

解決法 → 1.の時と同じように、ファイルを直接修正する。

 
 

3. wp-config.php を UTF-8(BOMあり) で保存してしまった。

何らかの理由で、wp-config.php を編集して上書き保存する時に UTF-8(BOMあり) で保存してしまうことが原因。

解決法 → wp-config.php を UTF-8 で保存しなおす。

もちろん管理画面からではなくFTPソフトなどを使って wp-config.php のファイルを直接保存しなおしてアップロードしなおす必要がある。

 
 

4. php.ini の設定が原因。

自分で設定を変更した場合はもちろんだが、サーバーの運営会社がメンテナンスなどを理由に勝手に変更する場合もある。

この場合は、Wordpressは関係ないので、サーバーにログインして、 php.ini の設定で output_buffering = Off となっていたら、output_buffering = On にすると解決する。

サーバーによっては、そもそも php.ini の設定ができない場合もあるので、カスタマーセンターなどに問い合わせてもいいかもしれない。

 
 

5. 外部からの悪意のある攻撃で nav-menu.php が書き換えられた。

解決法 → /wp-includes/nav-menu.php/wp-admin/includes/nav-menu.php の2つのファイルを確認し、 istart と検索して、該当箇所を削除。

詳しい削除方法はこちらの外部からの攻撃でnav-menu.phpが書き換えられた場合の対処法を参照。

 
 

それでもログインできない場合

最終手段。
新しいWordpressをダウンロードしてきて、Wordpressフォルダを丸ごとFTPで再アップロードする。
記事内容などはデータベースに格納されているので、丸ごと再アップロードしてもブログは無事だ。

ただし、以下のファイルとフォルダだけはアップロードしない事!

WordPressのフォルダ直下にある .htaccess と wp-config.php

/wp-content/themes/今使ってるテーマのフォルダ/

これでどんな問題があってもログインできるようになる。
逆に言うと、これでもダメな場合は、 .htaccess wp-config.php 自分が使っているテーマ のどれかに問題があることになる。

WordPressでログインしてる時だけスタイルシートを追記する方法

WordPressで、ログイン時だけdisplay noneなどを適用し、非表示にする方法

 
 
例えば、「ログインはこちら」などを固定フッターに表示しているが、ログインした人には、固定フッターそのものを非表示にしたい場合などに便利。

 
beforelogin
↓↓↓ログインすると、固定フッターを非表示に↓↓↓
afterlogin
 

 

ちなみに、上の写真のように、固定フッターに「ログインボタン」を追加するのに便利なWordperssのプラグインはこちらの記事を参照。
固定フッターを導入する方法 ワードプレスプラグインSimple Sticky Footer
 

 

functions.phpにログイン時のみ、CSS追記をする記述を追加

 

管理画面の「外観」→「テーマの編集」→「テーマのための関数(functions.php)」 とクリックして、 functions.php に、

add_action( ‘wp_head’, ‘footer_custom’);
function footer_custom() {
if ( is_user_logged_in() ) :
echo ‘<style type=”text/css”>#sticky-footer {display: none;}</style>’;
endif;
}

と追記しよう。

add_action( ‘wp_head’, ‘footer_custom‘);
function footer_custom() {

この、footer_custom は任意の名前でOK。

これで、ログイン時のみ、ヘッダーに、「id=”sticky-footer” に対して display: none; ね」と追記することができる。
 

 

応用編、ログインしてない時だけに適用する

 

add_action( ‘wp_head’, ‘footer_custom’);
function footer_custom() {
if ( is_user_logged_in() ) :
else :
ここに非ログイン時の処理を記載
endif;
}

こんな感じで色々使える。