「削除」タグアーカイブ

【解決済】削除に失敗しました: このサイトで重大なエラーが発生しました。WordPressのトラブルシューティングについてはこちらをご覧ください。と出てプラグインが削除できない時の対処法

ワードプレスのプラグインがエラーで削除できない時の対処法

何かのタイミングでWordPressのプラグインが削除できなくなる時がある。

エラーの文言は「削除に失敗しました: このサイトで重大なエラーが発生しました。WordPressのトラブルシューティングについてはこちらをご覧ください。

この時の対処法メモ。

プラグインを強制的に削除したい時(再インストールも同じ手順)

プラグインの管理ページで「削除」ボタンを押しても「削除しています…」と出るだけでページ上部にエラーメッセージが表示されるだけ。

こんな場合は管理画面からの削除は無理なので、サーバーのコントロールパネル又はFTPソフトから削除しよう。


FTPソフトで接続し、wp-content/plugins の中の該当のプラグインをフォルダごと削除してしまう。

なお、削除ではなく、プラグインを強制停止したいだけの場合は、削除ではなくプラグインのフォルダ名を変えてしまえばいい。

これだけで、管理画面からもきれいさっぱり消えてくれる。

WordPressの管理画面、ダッシュボードでオリジナルパーツ(独自メタボックス)を追加する方法 BuddyPressカスタマイズメモ

管理画面のダッシュボードで、独自のパーツ(メタボックス)を作って追加表示させる

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

管理者以外には、Wordpressのニュース、WordPress イベント、ようこそ画面など(ダッシュボードのメタボックスと呼ぶ)不要なものは全て非表示にしたうえで、独自のメタボックスを追加する方法を紹介。

ちなみに非表示にする方法はこちらを参照:
ダッシュボード画面(管理画面)の「アクティビティ」「クイックドラフト」などを非表示 WordPress BuddyPressカスタマイズメモ
 

独自メタボックス追加したい場合

普通の管理画面は色々と便利なウィンドウがあるが、記事を投稿してもらう人には不要なものばかり。

なので、不要なものを非表示にした上で

オリジナルの「クイックアクセス」というメタボックスを追加してみよう。

 

追加方法と記述のしかた

記述は簡単で、functions.php に下記のように書くだけ。

function my_meta_box(){
 add_meta_box( 'my_meta_box', 'クイックアクセス', 'my_meta_box_in', 'dashboard', 'normal', 'core' );
}
function my_meta_box_in(){
 echo '<a href="https://xxxxxxxx.com/">ホームページを確認</a><br />';
 echo '<a href="https://xxxxxxxx.com/wp-admin/post-new.php">新しく記事を書く</a><br />';
 echo '<a href="https://xxxxxxxx.com/wp-admin/profile.php">個人設定やプロフィールを編集</a><br />';
}
add_action( 'admin_menu', 'my_meta_box' );

‘クイックアクセス’の部分はタイトルなので、好きなタイトルでOK。

今回はリンクを貼り付けただけだが、phpで様々な機能を持たせることができる。

トラックバック、ピンバック、コメントの通知メール内容を変更 WordPress BuddyPressカスタマイズメモ

トラックバック、ピンバック、コメントの通知メール内容を変更

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

コメントがついた時に、投稿者にコメントが来たという通知メールが届く。

そこにIPアドレスが表示されたり、著者のURLや、コメントを書いた人のメールアドレスが表示される。

投稿者にIPメールアドレスなどは知らせる必要はないのでこれを削除したい。

ということで、メールの内容変更する。
 

functions.php へ記述

そこにIPアドレスが表示されたり、著者のURLや、コメントを書いた人のメールアドレスが表示される。

投稿者にIPメールアドレスなどは知らせる必要はないのでこれを削除したい。

// トラックバック、ピンバック、コメントの通知メールの内容を変更する

function custom_comment_moderation_text( $notify_message, $comment_id ) {
 global $wpdb;
 $comment = get_comment($comment_id);
 $post = get_post($comment->comment_post_ID);
 $comment_author_domain = @gethostbyaddr($comment->comment_author_IP);
 $comments_waiting = $wpdb->get_var("SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'");
 $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
 $comment_content = wp_specialchars_decode( $comment->comment_content );
 switch ( $comment->comment_type ) {
  case 'trackback': // トラックバック
  $notify_message = "「{$post->post_title}」に新しいトラックバックがありました。\r\n";
  $notify_message .= get_permalink($comment->comment_post_ID) . "\r\n\r\n";
  $notify_message .= "\r\n";
  $notify_message .= "トラックバック元: {$comment->comment_author}\r\n";
  //$notify_message .= "IP: {$comment->comment_author_IP} ({$comment_author_domain})\r\n";
  //$notify_message .= "URL: {$comment->comment_author_url}\r\n";
  $notify_message .= "トラックバックの概要: \r\n";
  $notify_message .= "{$comment_content}\r\n";
  $notify_message .= "\r\n";
  break;
 case 'pingback': // ピンバック
  $notify_message = "「{$post->post_title}」に新しいピンバックがありました。\r\n";
  $notify_message .= get_permalink($comment->comment_post_ID) . "\r\n\r\n";
  $notify_message .= "\r\n";
  $notify_message .= "ピンバック元: {$comment->comment_author}\r\n";
  //$notify_message .= "IP: {$comment->comment_author_IP} ({$comment_author_domain})\r\n";
  //$notify_message .= "URL: {$comment->comment_author_url}\r\n";
  $notify_message .= "ピンバックの概要: \r\n";
  $notify_message .= "{$comment_content}\r\n";
  $notify_message .= "\r\n";
  break;
 default: // コメント
  $notify_message = "「{$post->post_title}」に新しいコメントがありました。\r\n";
  $notify_message .= get_permalink($comment->comment_post_ID) . "\r\n\r\n";
  $notify_message .= "\r\n";
  $notify_message .= "投稿者: {$comment->comment_author}\r\n";
  //$notify_message .= "IP: {$comment->comment_author_IP} ({$comment_author_domain})\r\n";
  //$notify_message .= "メールアドレス: {$comment->comment_author_email}\r\n";
  //$notify_message .= "URL: {$comment->comment_author_url}\r\n";
  $notify_message .= "コメント: \r\n";
  $notify_message .= "{$comment_content}\r\n";
  $notify_message .= "\r\n";
  break;
 }
 return $notify_message;
}
add_filter( 'comment_moderation_text', 'custom_comment_moderation_text', 10, 2 );
add_filter( 'comment_notification_text', 'custom_comment_moderation_text', 10, 2 );

これで、コメント承認通知メールと、コメントがつけられた時の通知メールの、内容を変更してIPアドレスなどを表示しないようにする。

しかし、実は、問題があり、
通知メールに「返信」した時には、コメントをくれた人のメールアドレスへの返信となってしまう

メールヘッダーに reply-to 要素に、コメントを書いた人のメールアドレスが入っているからだ。

これを変更するには下記関連記事の、メールに返信した時にコメントを書いた人のメールアドレスが出ないようにする を参照。

関連記事:
・コメント通知メールの差出人(wordpress@yourdomain.com)のメールアドレスを変更

・メールに返信した時にコメントを書いた人のメールアドレスが出ないようにする(Better Notifications for WordPressの設定の問題点を修正するため、管理画面で特定のページの時のみ、jsを上書きする)