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

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

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

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

PHP

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

プラグイン

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

受付中

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

lnavi.bex810vh
lnavi.bex810vh

総合スコア12

WordPress

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

PHP

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

プラグイン

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

1回答

-1評価

0クリップ

653閲覧

投稿2022/01/06 11:38

編集2022/01/12 10:55

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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

WordPress

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

PHP

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

プラグイン

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