質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

1回答

3605閲覧

BuddyPressのユーザー自身が自分のアカウント削除と同時に該当ユーザー関連のトピックを自動で削除する方法

lnavi.bex810vh

総合スコア12

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

1グッド

0クリップ

投稿2022/01/06 11:38

編集2022/01/07 03:57

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 &copy; ' . 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にソースを上書きすることでも実現することはできないでしょうか?ご経験のある方などでもしご存じの方がいらっしゃいましたら、ご助言いただければ幸いです。

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

delete_userフックでユーザー削除時に削除対象ユーザーが作成した投稿をget_posts()で探してwp_delete_post()で削除。

delete_user
https://developer.wordpress.org/reference/hooks/delete_user/

get_posts()
https://developer.wordpress.org/reference/functions/get_posts/

wp_delete_post()
https://developer.wordpress.org/reference/functions/wp_delete_post/

とりあえず何でも書けば良いってもんじゃない。
使用してる全てのプラグインの情報なんて要らん。
丸投げと指摘されて質問に追加した無関係なfunctions.phpのコードも要らん。
無駄な情報で本文をかさ増ししても邪魔なだけ。

投稿2022/01/07 04:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lnavi.bex810vh

2022/01/07 04:38

そんなに文句があるんだったら無視すればいいのでは?何マウントとってんの?ウザイ。
lnavi.bex810vh

2022/01/07 04:39

もはやマウントとるために書き込んでるんでしょ。図星では?(笑)
lnavi.bex810vh

2022/01/07 04:40

スペースモンキーっていうハンドル名もダサイ。
lnavi.bex810vh

2022/01/07 04:43

お前はいつから見ず知らずの人さまに命令口調で話せる立場にたったの?お前なんか誰も知らんがな。
lnavi.bex810vh

2022/01/07 04:47

テラテイルってこんな輩がうじゃうじゃいるよね。運営も少しは問題視しないと、ユーザが離れるのでは?
退会済みユーザー

退会済みユーザー

2022/01/07 22:22

スペースモンキーみたいな解答するヤツがいるんだろうなって、wordpressの質問を見たら、1発目にスペースモンキーみたいなヤツ。質問の仕方はバッチリじゃん。環境情報を書かなければ書かないで文句を言うくせに、書いたら書いたで文句言うのな。こんなヤツがいるから、きちんと解答をしてくれる人は離れていって、IT系のQ&Aサイトって廃れていくんだろな。
lnavi.bex810vh

2022/01/07 22:48

まったく困ったもので、以前の質問でも必ずと言っていいほどマウントとってきます。なのでテラテイルは最後の手段くらいにしか考えていないです。今回ばかりは堪忍袋の緒が切れました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問