{"id":29630,"date":"2014-05-21T00:48:28","date_gmt":"2014-05-21T00:48:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/comment-blacklist-manager\/"},"modified":"2025-12-13T21:44:31","modified_gmt":"2025-12-13T21:44:31","slug":"comment-blacklist-manager","status":"publish","type":"plugin","link":"https:\/\/lmo.wordpress.org\/plugins\/comment-blacklist-manager\/","author":4040050,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.1","stable_tag":"1.0.1","tested":"6.9.4","requires":"5.6","requires_php":"7.0","requires_plugins":null,"header_name":"Comment Blacklist Manager","header_author":"Andrew Norcross","header_description":"","assets_banners_color":"8b433c","last_updated":"2025-12-13 21:44:31","external_support_url":"","external_repository_url":"","donate_link":"http:\/\/andrewnorcross.com\/donate","header_plugin_uri":"https:\/\/github.com\/norcross\/comment-blacklist-manager","header_author_uri":"http:\/\/andrewnorcross.com","rating":4.4,"author_block_rating":0,"active_installs":600,"downloads":8254,"num_ratings":5,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"grantsplorp","date":"2020-03-20 20:48:43"},"1.0.1":{"tag":"1.0.1","author":"grantsplorp","date":"2025-12-13 21:44:31"}},"upgrade_notice":[],"ratings":{"1":0,"2":"1","3":0,"4":0,"5":"4"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2265891,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2265891,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":1071762,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":1071762,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3288070,"resolution":"1","location":"assets","locale":""}},"screenshots":{"1":"The \u201cDiscussion Settings\u201d screen showing the various blacklist fields"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1784,107,599],"plugin_category":[44,54],"plugin_contributors":[87573,78337],"plugin_business_model":[],"class_list":["post-29630","plugin","type-plugin","status-publish","hentry","plugin_tags-blacklist","plugin_tags-comments","plugin_tags-spam","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-grantsplorp","plugin_contributors-norcross","plugin_committers-grantsplorp","plugin_committers-norcross"],"banners":{"banner":"https:\/\/ps.w.org\/comment-blacklist-manager\/assets\/banner-772x250.jpg?rev=1071762","banner_2x":"https:\/\/ps.w.org\/comment-blacklist-manager\/assets\/banner-1544x500.jpg?rev=1071762","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/comment-blacklist-manager\/assets\/icon-128x128.png?rev=2265891","icon_2x":"https:\/\/ps.w.org\/comment-blacklist-manager\/assets\/icon-256x256.png?rev=2265891","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/comment-blacklist-manager\/assets\/screenshot-1.png?rev=3288070","caption":"The \u201cDiscussion Settings\u201d screen showing the various blacklist fields"}],"raw_content":"<!--section=description-->\n<p>Comment Blacklist Manager retrieves a list of terms from a remote source and updates the <code>disallowed_keys<\/code> setting in WordPress. The plugin will automatically fetch a list of terms on a regular schedule and update the contents of the \u201cDisallowed Comment Keys\u201d field. Terms added manually via the \u201cLocal Blacklist\u201d field will be retained during the scheduled updates. Terms added manually to the \u201cExcluded Terms\u201d\u00a0field will be removed from the list.<\/p>\n\n<p>The default list of terms is fetched from a <a href=\"https:\/\/github.com\/splorp\/wordpress-comment-blacklist\/\" title=\"Comment Blacklist for WordPress\">GitHub<\/a> repository maintained by <a href=\"https:\/\/splorp.com\/\" title=\"Interface considerations. Gadget accumulation. Typography. Scotch.\">Grant Hutchinson<\/a>.<\/p>\n\n<!--section=installation-->\n<p><strong>To install the plugin using the WordPress dashboard:<\/strong><\/p>\n\n<ol>\n<li>Go to the \u201cPlugins &gt; Add New\u201d page<\/li>\n<li>Search for \u201cComment Blacklist Manager\u201d<\/li>\n<li>Click the \u201cInstall Now\u201d button<\/li>\n<li>Activate the plugin on the \u201cPlugins\u201d page<\/li>\n<li>(Optional) Add terms to the \u201cLocal Blacklist\u201d field in \u201cSettings &gt; Discussion\u201d<\/li>\n<li>(Optional) Add terms to the \u201cExcluded Terms\u201d field in \u201cSettings &gt; Discussion\u201d<\/li>\n<\/ol>\n\n<p><strong>To install the plugin manually:<\/strong><\/p>\n\n<ol>\n<li>Download the plugin and decompress the archive<\/li>\n<li>Upload the <code>comment-blacklist-manager<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory on the server<\/li>\n<li>Activate the plugin on the \u201cPlugins\u201d page<\/li>\n<li>(Optional) Add terms to the \u201cLocal Blacklist\u201d field in \u201cSettings &gt; Discussion\u201d<\/li>\n<li>(Optional) Add terms to the \u201cExcluded Terms\u201d field in \u201cSettings &gt; Discussion\u201d<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='what%20is%20the%20source%20for%20the%20default%20blacklist%3F'><h3>What is the source for the default blacklist?<\/h3><\/dt>\n<dd><p>The default blacklist is maintained by <a href=\"https:\/\/splorp.com\/\" title=\"Interface considerations. Gadget accumulation. Typography. Scotch.\">Grant Hutchinson<\/a> on <a href=\"https:\/\/github.com\/splorp\/wordpress-comment-blacklist\/\" title=\"Comment Blacklist for WordPress\">GitHub<\/a>.<\/p><\/dd>\n<dt id='how%20often%20is%20the%20default%20blacklist%20updated%3F'><h3>How often is the default blacklist updated?<\/h3><\/dt>\n<dd><p>Generally, the default blacklist is updated several times per month. This includes the addition of new entries and the optimizing of existing entries. Sometimes the default blacklist can undergo multiple updates per week, depending on how much spam in being sent to public WordPress sites we use to test the plugin.<\/p><\/dd>\n<dt id='can%20i%20provide%20my%20own%20blacklist%20sources%3F'><h3>Can I provide my own blacklist sources?<\/h3><\/dt>\n<dd><p>Yes, you can. Use the filter <code>cblm_sources<\/code> to add different source URLs.<\/p>\n\n<p><strong>To replace the default source completely:<\/strong><\/p>\n\n<pre><code>add_filter( 'cblm_sources', 'rkv_cblm_replace_blacklist_sources' );\n\nfunction rkv_cblm_replace_blacklist_sources( $list ) {\n\n    return array(\n        'http:\/\/example.com\/blacklist-1.txt'\n        'http:\/\/example.com\/blacklist-2.txt'\n    );\n\n}\n<\/code><\/pre>\n\n<p><strong>To add a new source to the existing sources:<\/strong><\/p>\n\n<pre><code>add_filter( 'cblm_sources', 'rkv_cblm_add_blacklist_source' );\n\nfunction rkv_cblm_add_blacklist_source( $list ) {\n\n    $list[] = 'http:\/\/example.com\/blacklist-1.txt';\n\n    return $list;\n\n}\n<\/code><\/pre>\n\n<p>The plugin expects the list of terms to be in plain text format with each entry on its own line. If the source is provided in a different format (eg: a JSON feed or serialized array), then the result must be run through the <code>cblm_parse_data_result<\/code> filter, which parses the source as a list of terms and the source URL.<\/p><\/dd>\n<dt id='what%20is%20the%20default%20update%20schedule%3F'><h3>What is the default update schedule?<\/h3><\/dt>\n<dd><p>The plugin will update the list of terms from the specified sources every 24 hours.<\/p><\/dd>\n<dt id='can%20i%20change%20the%20update%20schedule%3F'><h3>Can I change the update schedule?<\/h3><\/dt>\n<dd><p>Yes, you can. Use the filter <code>cblm_update_schedule<\/code> to modify the time between updates.<\/p>\n\n<pre><code>add_filter( 'cblm_update_schedule', 'rkv_cblm_custom_schedule' );\n\nfunction rkv_cblm_custom_schedule( $time ) {\n\n    return DAY_IN_SECONDS;\n\n}\n<\/code><\/pre>\n\n<p>The <code>return<\/code> data should be specified using WordPress <a href=\"https:\/\/codex.wordpress.org\/Transients_API#Using_Time_Constants\" title=\"Transients API: Using Time Constants\">Transient Time Constants<\/a>.<\/p><\/dd>\n<dt id='can%20i%20add%20my%20own%20terms%20to%20the%20blacklist%3F'><h3>Can I add my own terms to the blacklist?<\/h3><\/dt>\n<dd><p>Yes. Individual terms can be added to the \u201cLocal Blacklist\u201d field in the \u201cSettings &gt; Discussion\u201d area of WordPress. Each term must be entered on its own line.<\/p><\/dd>\n<dt id='can%20i%20exclude%20terms%20from%20the%20blacklist%3F'><h3>Can I exclude terms from the blacklist?<\/h3><\/dt>\n<dd><p>Yes. Individual terms can be excluded from the automatically fetched blacklist by adding them to the \u201cExcluded Terms\u201d field in the \u201cSettings &gt; Discussion\u201d area of WordPress. Each term must be entered on its own line.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1 \u2014 23-Mar-2020<\/h4>\n\n<ul>\n<li>Fixed admin notice to properly clear when a manual update is run<\/li>\n<li>Minor code cleanup<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Remotely add terms to the WordPress Disallowed Comment Keys field to manage spam.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/29630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=29630"}],"author":[{"embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/norcross"}],"wp:attachment":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=29630"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=29630"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=29630"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=29630"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=29630"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=29630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}