WordPress5.8.2の環境でBuddyPress9.2とbbPress2.6.9にてコミュニティサイトを運営しております。
実現したいのは、BuddyPressの登録ユーザーが自分でアカウントを削除するのと同時に、その会員が投稿したトピックをすべて自動で削除したいということです。(ユーザー自身が手動で自分のトピックを削除する機能は「bbp style pack」で実現できました)現在の動作としては、「匿名」というユーザが勝手に表れて、退会したユーザーのコンテンツを配下に置くように動作しています。
プラグイン単体ではユーザー関連のコンテンツを削除できる「Delete Me」や「bbPress forum utility pack」を使ってみたのですが、どちらもまったく動作しません。このうち「bbPress forum utility pack」についてはダッシュボードのユーザー一覧の画面がおかしくなり、他のプラグインとコンフリクトしていると思われるので使うことができません。「Delete Me」では権限をbbpressの「参加者」に変更して試してみましたが、デフォルトと動作が変わることはありませんでした。
--テストの実施方法--
「Delete Me」や「bbPress forum utility pack」のプラグインを有効化した後、新しいユーザーを作成し、トピックを作成。それからそのユーザーでアカウントを削除して、該当のトピックが無くなっていないかどうか確認しています。こうすると匿名ユーザーが必ず現れてトピックを配下に置きます。
参考までに使用しているプラグインの一覧と子テーマのfunctions.phpの内容を記載しておきます。
------プラグイン一覧------
Advanced noCaptcha & invisible Captcha
バージョン 6.1.7
Auto Prune Posts
バージョン 1.7.0
BackWPup
バージョン 3.10.0
bbp style pack
バージョン 4.9.1
bbPress
バージョン 2.6.9
Better Messages
バージョン 1.9.9.144
BP Profile Search
バージョン 5.4.4
BuddyPress
バージョン 9.2.0
BuddyPress Automatic Friends
バージョン 2.0.7
BuddyPress Global Search
バージョン 1.2.1
Buddypress Media
バージョン 4.6.9
BuddyPress Xprofile Custom Field Types
バージョン 1.2.0
Contact Form 7
バージョン 5.5.3
Edit Author Slug
バージョン 1.8.3
Events Manager
バージョン 5.12.1
Google XML Sitemap Generator
バージョン 2.0.2
Image Upload for BBPress
バージョン 1.1.18
Loco Translate
バージョン 2.5.5
LoginPress
バージョン 1.5.10
Orbisius bbPress Notify Me On Follow Up Replies
バージョン 1.0.2
ProfilePress
バージョン 3.2.6
Site Kit by Google
バージョン 1.48.1
SiteGuard WP Plugin
バージョン 1.6.0
Transcoder
バージョン 1.3.4
Ultimate FAQ
バージョン 2.1.6
VK All in One Expansion Unit
バージョン 9.69.2.0
VK Block Patterns
バージョン 1.12.6
VK Blocks
バージョン 1.21.0
WP FullCalendar
バージョン 1.4.1
WP Mail Smtp - SMTP7
バージョン 1.0.7
WP Multibyte Patch
子テーマのfunctions.php
//日本語化 function add_my_functions_to_parent_theme() { load_theme_textdomain( 'attitude', get_stylesheet_directory() . '/library/languages' ); } add_action( 'after_setup_theme', 'add_my_functions_to_parent_theme' ); /** * Copyright置き換え */ add_action( 'init', 'replace_footer_info' ); function replace_footer_info() { remove_action( 'attitude_footer', 'attitude_footer_info', 30 ); add_action( 'attitude_footer', 'attitude_footer_info_mine', 20 ); } function attitude_footer_info_mine() { echo '<div class="copyright">Copyright © ' . attitude_the_year() . ' BAND Its Easy</div><!-- .copyright -->'; } // ▼ダッシュボードへのアクセス無効(ただし管理者は除く) add_action( 'auth_redirect', 'subscriber_go_to_home' ); function subscriber_go_to_home( $user_id ) { $user = get_userdata( $user_id ); if ( !$user->has_cap( 'edit_posts' ) ) { wp_redirect( get_home_url() ); exit(); } } // ▼ツールバー非表示 if(current_user_can('subscriber')){ add_action( 'after_setup_theme', 'subscriber_hide_toolbar' ); } function subscriber_hide_toolbar() { show_admin_bar( false ); } //プロフィールのメールアドレスを表示名に変更する add_filter( 'bp_get_displayed_user_mentionname', function( $mentionname ) { if ( $userdata = bp_core_get_core_userdata( bp_displayed_user_id() ) ) { $mentionname = $userdata->display_name; } return $mentionname; } ); //▼Events Managerの通貨表記の小数点以下を非表示にする function b2n_em_get_currency_formatted( $formatted_price, $price , $currency, $format){ if ( preg_match( '/[0-9,.]+/u', $formatted_price, $match) ) { $formatted_price = str_replace( $match[0] , number_format($price) , $formatted_price ); } return $formatted_price; } add_filter( 'em_get_currency_formatted', 'b2n_em_get_currency_formatted', 10, 4 ); //▼特定のアドレスにBuddyPressの「アカウント有効化」の確認メールが届かないのを解消? add_filter('bp_email_use_wp_mail', function () { return true; }); //▼bbPressで入力できる件名の文字数を増やす add_filter ('bbp_get_title_max_length','change_title') ; function change_title ($default) { $default=160 ; Return $default ; } //▼メンバー募集に必要な項目 function bbp_save_extra_fields($topic_id = 0) { if (isset($_POST) && $_POST['part01']!='') { //募集パート項目の保存 update_post_meta( $topic_id, 'part01', $_POST['part01'] ); } if (isset($_POST) && $_POST['gender']!='') { //募集性別項目の保存 update_post_meta( $topic_id, 'gender', $_POST['gender'] ); } if (isset($_POST) && $_POST['exp']!='') { //経験項目の保存 update_post_meta( $topic_id, 'exp', $_POST['exp'] ); } if (isset($_POST) && $_POST['tech']!='') { //技術項目の保存 update_post_meta( $topic_id, 'tech', $_POST['tech'] ); } if (isset($_POST) && $_POST['direction']!='') { //方向性項目の保存 update_post_meta( $topic_id, 'direction', $_POST['direction'] ); } if (isset($_POST) && $_POST['training']!='') { //練習頻度項目の保存 update_post_meta( $topic_id, 'training', $_POST['training'] ); } } add_action ( 'bbp_new_topic', 'bbp_save_extra_fields', 10, 1 ); add_action ( 'bbp_edit_topic', 'bbp_save_extra_fields', 10, 1 ); ?> コード
bbPressの公式フォーラムを探していたら「Auto prune posts」というプラグインがみつかりました。これを使うと指定した時間が経過したら記事を削除するということができるようなので、暫定措置として、トピックが立ってから一定期間経ったものは自動削除するという対応を行っています。目的の登録ユーザーが退会した際にトピックを削除するというプラグインはまだ見つかっていません。
何か有効なプラグインがあれば一番良いですが、functions.phpにソースを上書きすることでも実現することはできないでしょうか?ご経験のある方などでもしご存じの方がいらっしゃいましたら、ご助言いただければ幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/07 04:38
2022/01/07 04:39
2022/01/07 04:40
2022/01/07 04:43
2022/01/07 04:47
退会済みユーザー
2022/01/07 22:22
2022/01/07 22:48