{"id":4877,"date":"2009-02-27T21:23:03","date_gmt":"2009-02-27T21:23:03","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/wp-content-filter\/"},"modified":"2026-10-05T14:00:59","modified_gmt":"2026-10-05T14:00:59","slug":"wp-content-filter","status":"publish","type":"plugin","link":"https:\/\/vec.wordpress.org\/plugins\/wp-content-filter\/","author":2008307,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.2.3","stable_tag":"3.2.3","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Content Censor","header_author":"David Gwyer","header_description":"","assets_banners_color":"4dbcbc","last_updated":"2026-10-05 14:00:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpgoplugins.com\/plugins\/content-censor\/","header_author_uri":"https:\/\/wpgoplugins.com\/","rating":4.5,"author_block_rating":0,"active_installs":600,"downloads":60942,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"gwycon","date":"2009-02-28 14:56:00","revision":98427},"1.1":{"tag":"1.1","author":"gwycon","date":"2009-03-04 18:55:27","revision":99563},"1.2":{"tag":"1.2","author":"gwycon","date":"2009-03-17 20:47:19","revision":103072},"2.0":{"tag":"2.0","author":"gwycon","date":"2010-05-21 11:55:06","revision":243828},"2.01":{"tag":"2.01","author":"gwycon","date":"2010-05-21 11:55:06","revision":243828},"2.05":{"tag":"2.05","author":"gwycon","date":"2010-05-25 23:01:46","revision":245589},"2.1":{"tag":"2.1","author":"gwycon","date":"2010-05-26 01:44:49","revision":245603},"2.11":{"tag":"2.11","author":"gwycon","date":"2010-05-26 11:23:10","revision":245735},"2.20":{"tag":"2.20","author":"gwycon","date":"2010-05-31 20:25:52","revision":247643},"2.25":{"tag":"2.25","author":"gwycon","date":"2010-05-31 21:16:07","revision":247657},"2.26":{"tag":"2.26","author":"gwycon","date":"2010-06-28 13:20:50","revision":258210},"2.27":{"tag":"2.27","author":"gwycon","date":"2011-03-11 13:24:41","revision":358757},"2.28":{"tag":"2.28","author":"gwycon","date":"2011-07-15 15:35:12","revision":410316},"2.3":{"tag":"2.3","author":"dgwyer","date":"2012-04-02 14:15:56","revision":526230},"2.31":{"tag":"2.31","author":"dgwyer","date":"2012-05-21 17:31:29","revision":547113},"2.32":{"tag":"2.32","author":"dgwyer","date":"2013-01-12 11:56:45","revision":651627},"2.33":{"tag":"2.33","author":"dgwyer","date":"2013-02-23 16:21:59","revision":672259},"2.4":{"tag":"2.4","author":"dgwyer","date":"2014-03-14 10:50:03","revision":875342},"2.41":{"tag":"2.41","author":"dgwyer","date":"2014-03-14 12:36:50","revision":875388},"2.42":{"tag":"2.42","author":"dgwyer","date":"2014-04-29 12:47:19","revision":904723},"2.43":{"tag":"2.43","author":"dgwyer","date":"2014-05-01 10:35:21","revision":906204},"2.44":{"tag":"2.44","author":"dgwyer","date":"2014-05-02 11:11:25","revision":906805},"2.45":{"tag":"2.45","author":"dgwyer","date":"2014-05-02 11:17:04","revision":906809},"2.46":{"tag":"2.46","author":"dgwyer","date":"2014-07-20 11:24:39","revision":951786},"2.47":{"tag":"2.47","author":"dgwyer","date":"2016-05-09 18:38:22","revision":1413244},"2.48":{"tag":"2.48","author":"dgwyer","date":"2016-05-09 19:03:19","revision":1413265},"2.49":{"tag":"2.49","author":"dgwyer","date":"2016-05-10 09:46:20","revision":1413705},"2.50":{"tag":"2.50","author":"dgwyer","date":"2016-06-04 09:41:37","revision":1430348},"2.51":{"tag":"2.51","author":"dgwyer","date":"2016-09-26 13:08:28","revision":1502785},"2.55":{"tag":"2.55","author":"dgwyer","date":"2017-03-13 15:30:22","revision":1613520},"2.56":{"tag":"2.56","author":"dgwyer","date":"2017-03-14 15:38:41","revision":1614260},"2.6":{"tag":"2.6","author":"dgwyer","date":"2017-03-25 12:46:27","revision":1621825},"2.7":{"tag":"2.7","author":"dgwyer","date":"2017-03-28 10:45:25","revision":1623719},"2.8":{"tag":"2.8","author":"dgwyer","date":"2017-09-13 12:11:04","revision":1729285},"2.9":{"tag":"2.9","author":"dgwyer","date":"2018-09-21 08:52:35","revision":1944631},"3.0.1":{"tag":"3.0.1","author":"dgwyer","date":"2020-07-14 18:58:30","revision":2340539},"3.1.0":{"tag":"3.1.0","author":"dgwyer","date":"2023-10-11 12:56:31","revision":2977602},"3.2.1":{"tag":"3.2.1","author":"dgwyer","date":"2026-08-11 15:54:59","revision":3642238},"3.2.3":{"tag":"3.2.3","author":"dgwyer","date":"2026-10-05 14:00:59","revision":3729047}},"upgrade_notice":{"3.2.3":"<p>Adds Home and New Features pages, reset confirmation, and a privacy-safe support\nsummary. Pro scans now work through large comment threads in bounded batches.<\/p>"},"ratings":{"1":0,"2":0,"3":"1","4":0,"5":"3"},"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":1413167,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-772x250-rtl.png":{"filename":"banner-772x250-rtl.png","revision":1442437,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":1442437,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.1","1.2","2.0","2.01","2.05","2.1","2.11","2.20","2.25","2.26","2.27","2.28","2.3","2.31","2.32","2.33","2.4","2.41","2.42","2.43","2.44","2.45","2.46","2.47","2.48","2.49","2.50","2.51","2.55","2.56","2.6","2.7","2.8","2.9","3.0.1","3.1.0","3.2.1","3.2.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":1413167,"resolution":"1","location":"assets","locale":"","width":694,"height":785},"screenshot-2.png":{"filename":"screenshot-2.png","revision":1413167,"resolution":"2","location":"assets","locale":"","width":802,"height":671},"screenshot-3.png":{"filename":"screenshot-3.png","revision":1413167,"resolution":"3","location":"assets","locale":"","width":736,"height":53},"screenshot-4.png":{"filename":"screenshot-4.png","revision":1413167,"resolution":"4","location":"assets","locale":"","width":1050,"height":1087},"screenshot-5.png":{"filename":"screenshot-5.png","revision":1413167,"resolution":"5","location":"assets","locale":"","width":568,"height":604},"screenshot-6.png":{"filename":"screenshot-6.png","revision":1413167,"resolution":"6","location":"assets","locale":"","width":1001,"height":689}},"screenshots":[]},"plugin_section":[],"plugin_tags":[47469,275219,5860,1756,12796],"plugin_category":[55,57],"plugin_contributors":[78335,146884],"plugin_business_model":[],"class_list":["post-4877","plugin","type-plugin","status-publish","hentry","plugin_tags-censor","plugin_tags-comment-filter","plugin_tags-content-filter","plugin_tags-moderation","plugin_tags-profanity-filter","plugin_category-seo-and-marketing","plugin_category-taxonomy","plugin_contributors-dgwyer","plugin_contributors-wpgoplugins","plugin_committers-dgwyer","plugin_committers-gwycon"],"banners":{"banner":"https:\/\/ps.w.org\/wp-content-filter\/assets\/banner-772x250.png?rev=1442437","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/wp-content-filter\/assets\/icon.svg?rev=1413167","icon":"https:\/\/ps.w.org\/wp-content-filter\/assets\/icon.svg?rev=1413167","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wp-content-filter\/assets\/screenshot-1.png?rev=1413167","caption":""},{"src":"https:\/\/ps.w.org\/wp-content-filter\/assets\/screenshot-2.png?rev=1413167","caption":""},{"src":"https:\/\/ps.w.org\/wp-content-filter\/assets\/screenshot-3.png?rev=1413167","caption":""},{"src":"https:\/\/ps.w.org\/wp-content-filter\/assets\/screenshot-4.png?rev=1413167","caption":""},{"src":"https:\/\/ps.w.org\/wp-content-filter\/assets\/screenshot-5.png?rev=1413167","caption":""},{"src":"https:\/\/ps.w.org\/wp-content-filter\/assets\/screenshot-6.png?rev=1413167","caption":""}],"raw_content":"<!--section=description-->\n<p>Content Censor replaces configured words when WordPress displays supported\ncontent. Your original posts, pages, and comments remain unchanged in the\ndatabase, so authorised editors can continue to work with the source text.<\/p>\n\n<p>Use the settings page to:<\/p>\n\n<ul>\n<li>define the words to filter;<\/li>\n<li>choose whole-word or embedded matching;<\/li>\n<li>select case-sensitive or case-insensitive matching;<\/li>\n<li>choose a replacement character and masking style;<\/li>\n<li>enable filtering for content, excerpts, titles, comments, author names, tags,\nand tag clouds; and<\/li>\n<li>exclude selected post or page IDs.<\/li>\n<\/ul>\n\n<p>Content Censor is a presentation-layer filter. It does not replace appropriate\npermissions, moderation, reporting, or security controls.<\/p>\n\n<p>Upgrade to Content Censor Pro for batched site scanning, browser-title and\nBuddyPress filtering, custom hook support, automatic updates, and priority\nsupport: https:\/\/wpgoplugins.com\/plugins\/content-censor\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Open <strong>Content Censor &gt; Settings<\/strong>. The Home page provides a quick start,\ndocumentation links, and a support summary; New Features lists recent changes.<\/li>\n<li>Replace the example word list and choose the areas to filter.<\/li>\n<li>Save the settings and review representative public content.<\/li>\n<\/ol>\n\n<p>When Pro is activated over the WordPress.org plugin, existing <code>pccf_options<\/code>\nsettings are copied into the commercial settings record. The source record is\nleft intact for rollback.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20edit%20my%20posts%20or%20comments%3F\"><h3>Does the plugin edit my posts or comments?<\/h3><\/dt>\n<dd><p>No. Filtering happens when supported content is displayed. Stored content is\nnot rewritten.<\/p><\/dd>\n<dt id=\"can%20i%20prevent%20filtering%20on%20a%20specific%20page%3F\"><h3>Can I prevent filtering on a specific page?<\/h3><\/dt>\n<dd><p>Yes. Add the post or page ID to the comma-separated exclusion list.<\/p><\/dd>\n<dt id=\"why%20are%20one-%20and%20two-character%20entries%20ignored%3F\"><h3>Why are one- and two-character entries ignored?<\/h3><\/dt>\n<dd><p>Very short entries produce many accidental matches. Content Censor retains the\nhistoric minimum of three characters per configured word.<\/p><\/dd>\n<dt id=\"does%20it%20replace%20a%20moderation%20system%3F\"><h3>Does it replace a moderation system?<\/h3><\/dt>\n<dd><p>No. It is one display-layer control and should be combined with the moderation\nand security processes appropriate to the site.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.2.3<\/h4>\n\n<ul>\n<li>Added Home and New Features alongside Settings in the Content Censor menu.\nExisting Settings bookmarks redirect to the current Settings page.<\/li>\n<li>Added confirmation before resetting settings and a copyable support summary\nthat excludes saved rules, content, site addresses, and licence details.<\/li>\n<li>Updated the quick-start screenshot to show the current filtering controls.<\/li>\n<li>Pro: improved scanning of comment-heavy content with bounded comment batches\nand no duplicate matching posts in the results.<\/li>\n<li>Pro: load bundled translations at the correct point in WordPress startup.<\/li>\n<\/ul>\n\n<h4>3.2.1<\/h4>\n\n<ul>\n<li>Aligned the translation domain with the historic <code>wp-content-filter<\/code> directory slug.<\/li>\n<\/ul>\n\n<h4>3.2.0<\/h4>\n\n<ul>\n<li>Unified the public 3.1.0 and Freemius Pro 1.0.0 upgrade paths.<\/li>\n<li>Added a WordPress.org-compliant Freemius Free\/Pro basename handoff.<\/li>\n<li>Preserved commercial settings and migrated WordPress.org settings safely.<\/li>\n<li>Restored Pro browser-title and custom-hook filtering.<\/li>\n<li>Added Unicode-aware masking and robust literal regular-expression handling.<\/li>\n<li>Replaced fragile HTML matching with WordPress HTML splitting.<\/li>\n<li>Replaced the unbounded scanner with capability- and nonce-protected batches.<\/li>\n<li>Restricted saved settings to supported controls and protected settings resets.<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li>Escaped and sanitized settings output in the WordPress.org plugin.<\/li>\n<\/ul>\n\n<h4>1.0.0 (Pro)<\/h4>\n\n<ul>\n<li>Moved commercial licensing and updates to Freemius.<\/li>\n<li>Preserved the existing <code>content_censor_plugin_options<\/code> record.<\/li>\n<\/ul>","raw_excerpt":"Filter configured words from selected public-facing parts of a WordPress site without changing the stored source content.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/4877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=4877"}],"author":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gwycon"}],"wp:attachment":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=4877"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=4877"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=4877"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=4877"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=4877"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=4877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}