Does this plugin still work in WP 6.3 without any problems and will there be an update for it? If not, I would appreciate information about an alternative plugin.
]]>I’ve used this nifty little plugin on a number of sites.
I am hoping that maybe there is someone out there willing to keep it going?
Anyone? ??
]]>Installed this plug-in regardless of the warning on WordPress’s plan-in page because often older plug-inns work fine anyway.
This one does not.
Assuming it is no longer supported, are there any alternatives? I’m searching the plug-in database but could be using the wrong terms.
]]>Hi
We have a website with elementor pro plugin and we are using posts widget.
We installed your plugin and after few days disabled and removed it and now the pagination links in the blog page do 301 redirect to the same page.
We tested it with the same widget in another page and it has the same behavior.
It of course did not happened until we installed “disabled feed” plugin
Please help
]]>Hello,
I installed your plugin on my website but couldn’t find the settings. Where is the settings section?
My website URL: https://decorationforhomes.com/cake-table-decoration-at-home/
]]>Hello,
do you plan a “Disable Feeds” compatibility update for WordPress 5.5.x ???
]]>Any way of disabling all feeds other than the global PLUS the category feed? So we’d disable individual post comment feeds, tag feeds, search feeds, etc.
]]>Hi,
how can remome (by this best plugin) /feed/ in url?
Example: https://www.mysite.it/filo-resistivo/feed/page/4/
Thanks
]]>The plugin does not seem to be working for /feed only /feed/rss works.
https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fwendydown.com%2Ffeed
Putting https://wendydown.com/feed into the Chrome browser URL results in the XML being shown, not a redirect.
I’ve tested in both Chrome and Safari, cleared the caches, cleared the W3 Total Cache, and even waited a day to be sure the host wasn’t caching.
Would appreciate any suggestions.
]]>After switching to HTTPS the main feed I had asked this plugin not to block in settings could not be accessed. When I disabled the plugin the feed worked again.
Is there a way to make this work again after switching to https?
]]>Hi,
There is any option available in the plugin to enable only one RSS feed and disable remain.
https://www.example.com/feed/ – Need to block
https://www.example.com/feed/rss/ – Need to block
https://www.example.com/feed/rss2/ – Need to block
https://www.example.com/feed/rdf/ – Need to block
https://www.example.com/feed/atom/ – Need to block
https://www.example.com/store/latest-post/feed/ – want to enable this type of URLS
https://www.example.com/category/fashion/feed/ – Need to block
Please, can you suggest any code customization, if the option is not available?
Thanks,
Chintan
I’m looking for a feature that doesn’t seem to appear anywhere. I’m not even sure it is possible.
What I would like to do is disable /feed/ and enable an RSS Feed on a non public URL /secretfeed/.
]]>When i pick 404 option, its redirecting post’s feed links to /feed/feed/ and showing 404.
example:
original feed link: https://website.com/hello-world/feed/
404 option redirects to: https://website.com/hello-world/feed/feed/
Is this how plugin is supose to work for 404 option?
Hi,
can you please provide plugin translation or could you please update your github repository so i can help you internationalize it – if you want.
(there is an outdated version ;))
]]>Plugin works well, except for URLs:
https://www.example.com/feed/
https://www.example.com/feed/atom/
Hi, I have a custom filter on “term_link” that changes all category & tag permalinks. Menus acknowledge the new criteria imposed by this filter, but your plugin does not – it assumes that every category URL has the full longwinded hierarchy of parent category/subcategory in the URL by default and your plugin fails to function when someone has a filter to simplify their URL – your plugin fails to recognise the feed requests to my category pages and fails to redirect.
Any chance of an update to address this? Because I can’t find any other plugin like yours and I don’t want to have to create my own modified version of your plugin which may or may not be possible but won’t be easy…
For reference, I have a plugin to remove the /category/ base from all category pages, and my functions.php file contains this code to ensure only the lowest-level category appears in the URL (the parent category, where one exists, doesn’t appear):
add_filter('term_link', 'term_link_filter', 10, 3);
function term_link_filter( $url, $term, $taxonomy ) {
$lowermost_slug = substr(strrchr(substr($url,0,-1), "/"), 1);
return get_site_url().'/'.$lowermost_slug.'/';
}
]]>
The most recent update failed on one of the sites I administer. Updating from Version 1.4.2 to 1.4.3 – This is what happened on the Plugins section of the site when I select the ‘Update Now’ link – made 3 attempts with identical results…
Update Failed: <!DOCTYPE html> Page not found | Coop Voisins #masoncontainer{opacity:0} window._wpemojiSettings = {“baseUrl”:”https:\/\/s.w.org\/images\/core\/emoji\/2\/72×72\/”,”ext”:”.png”,”svgUrl”:”https:\/\/s.w.org\/images\/core\/emoji\/2\/svg\/”,”svgExt”:”.svg”,”source”:{“concatemoji”:”http:\/\/coopvoisins.ca\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.6″}}; !function(a,b,c){function d(a){var c,d,e,f,g,h=b.createElement(“canvas”),i=h.getContext&&h.getContext(“2d”),j=String.fromCharCode;if(!i||!i.fillText)return!1;switch(i.textBaseline=”top”,i.font=”600 32px Arial”,a){case”flag”:return i.fillText(j(55356,56806,55356,56826),0,0),!(h.toDataURL().length<3e3)&&(i.clearRect(0,0,h.width,h.height),i.fillText(j(55356,57331,65039,8205,55356,57096),0,0),c=h.toDataURL(),i.clearRect(0,0,h.width,h.height),i.fillText(j(55356,57331,55356,57096),0,0),d=h.toDataURL(),c!==d);case”diversity”:return i.fillText(j(55356,57221),0,0),e=i.getImageData(16,16,1,1).data,f=e[0]+”,”+e[1]+”,”+e[2]+”,”+e[3],i.fillText(j(55356,57221,55356,57343),0,0),e=i.getImageData(16,16,1,1).data,g=e[0]+”,”+e[1]+”,”+e[2]+”,”+e[3],f!==g;case”simple”:return i.fillText(j(55357,56835),0,0),0!==i.getImageData(16,16,1,1).data[0];case”unicode8″:return i.fillText(j(55356,57135),0,0),0!==i.getImageData(16,16,1,1).data[0];case”unicode9″:return i.fillText(j(55358,56631),0,0),0!==i.getImageData(16,16,1,1).data[0]}return!1}function e(a){var c=b.createElement(“script”);c.src=a,c.type=”text/javascript”,b.getElementsByTagName(“head”)[0].appendChild(c)}var f,g,h,i;for(i=Array(“simple”,”flag”,”unicode8″,”diversity”,”unicode9″),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],”flag”!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener(“DOMContentLoaded”,g,!1),a.addEventListener(“load”,g,!1)):(a.attachEvent(“onload”,g),b.attachEvent(“onreadystatechange”,function(){“complete”===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings); img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } <!– Start Fluid Video Embeds Style Tag –> /* Fluid Video Embeds */ .fve-video-wrapper { position: relative; overflow: hidden; height: 0; background-color: transparent; padding-bottom: 56.25%; margin: 0.5em 0; } .fve-video-wrapper iframe, .fve-video-wrapper object, .fve-video-wrapper embed { position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%; } .fve-video-wrapper a.hyperlink-image { position: relative; display: none; } .fve-video-wrapper a.hyperlink-image img { position: relative; z-index: 2; width: 100%; } .fve-video-wrapper a.hyperlink-image .fve-play-button { position: absolute; left: 35%; top: 35%; right: 35%; bottom: 35%; z-index: 3; background-color: rgba(40, 40, 40, 0.75); background-size: 100% 100%; border-radius: 10px; } .fve-video-wrapper a.hyperlink-image:hover .fve-play-button { background-color: rgba(0, 0, 0, 0.85); } <!– End Fluid Video Embeds Style Tag –> .recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;} body.custom-background { background-color: #3b643b; } Coop Voisins Menu Our Coop Welcome Why Choose A Coop? Units Our Neighbourhood Vacancies Contact Members Main Admin Notices Board Committees Posts WelcomeCoop Voisins was established in 1991 in central Ottawa as a bilingual housing cooperative. Our building is six storeys high and has 76 units. The building is clean and quiet, and the residents are friendly. A full-time Manager and Maintenance…continue reading ? Our Apartments There are 25 one-bedroom apartments in 3 different styles, ranging from 539 to 676 square feet and 45 two-bedroom apartments, in 3 different styles, ranging from 872 to 909 square feet. All 2 bedroom units have windows on two exposures. There are also six three-bedroom apartments, all located on the ground floor, again in 3 different layouts, ranging from 1045 to 1198 square feet. The three bedroom apartments all have 1.5 bathrooms and 11 foot ceilings. All 3 bedroom apartments have windows on two exposures. Housing charges and general information…continue reading ? Vacancies Upcoming 2 Bedroom Vacancies Spacious, newly renovated 2 bedroom apartments available November 1. $952 plus hydro. Parking available for $40/month. Coin laundry on site. Receiving applications now. Download our Membership Application Our NeighbourhoodAs you can see on our Location Page, Coop Voisins is well located, surrounded by plenty of green space, but also just minutes away from downtown and excellent public…continue reading ? ContactThe best way to find out more about Coop Voisins, or membership, is to call Elke Dring, our Coordinator, at (613) 565-0284. Our fax number is (613) 565-3050. Our Mailing Address is: Coop Voisins, Office, 440 Wiggins Private, Ottawa, Ontario K1N 1A7 Our Email is: [email protected] Where Is Coop Voisins? Coop Voisins is centrally located, in the “Sandy Hill” neighbourhood of Ottawa. You can walk downtown in…continue reading ? ? top ? Copyright ? 2013 Cooperative D’Habitation Voisins Inc. designed by Neotechnomad : powered by WordPress jQuery.noConflict() (function($){ $(window).load(function() { $(window).on(‘load resize reorientation’, function() { $(‘#masoncontainer’).css({opacity: 0, visibility: ‘visible’}).animate({opacity: 1}, 2000); }).trigger(‘resize’); $(‘.menu-mainnav-container, .menu-members-container, .sub-menu’).hide(); $(‘#menubutton’).unbind(‘click’).on(‘click’, function(e){ e.stopPropagation(); $(‘.menu-mainnav-container’).slideToggle(400, ‘swing’); $(‘.menu-members-container’).slideToggle(400, ‘swing’); }); $(‘.menu li a’).unbind(‘click’).on(‘click’, function(e){ e.stopPropagation(); $(this).next(‘.sub-menu’).slideToggle(400, ‘swing’); $(‘.menu li a’).not(this).next(‘.sub-menu’).slideUp(400, ‘swing’); }); $(window).scroll(function() { if ( $(this).scrollTop() > 2 ) { $(‘#site-description,#scroll’).fadeOut(‘fast’); } else if ( $(this).scrollTop() == 0 ) { $(‘#site-description,#scroll’).fadeIn(‘slow’); } }); $(‘#scrolltop’).click(function () { $(‘html, body’).animate({ scrollTop: 0 }, 1600); }); }); })(jQuery); jQuery.noConflict() (function($){ $(window).load(function() { var vcmod = $(‘.vcmodule’), vcdbl = $(‘.vcdouble’), cont = $(‘.home #container’), mascont = $(‘#masoncontainer’), membmas = $(‘#member-masonry’), intro = $(‘#intro’), body = $(‘body’), w = $(window); w.on(‘load, resize reorientation’, function() { intro.css({height:w.height()}); cont.css({width:w.width()}); if ( w.width() >= 1040 ) { vcmod.css({width:w.width() / 3 – 4}); vcdbl.css({width:w.width() / 3 * 2 – 4}); } else if ( w.width() < 1040 && w.width() > 780 ) { vcmod.css({width:w.width() / 2 – 4}); vcdbl.css({width:w.width() / 2 – 4}); } else if ( w.width() < 780 ) { vcmod.css({width:w.width() – 4}); vcdbl.css({width:w.width() – 4}); } if ( w.width() < 1039 ) { mascont.isotope({ itemSelector : ‘.vcmodule’, layoutMode : ‘masonry’, isResizable : true }); } membmas.isotope({ itemSelector : ‘.membmodule’, layoutMode : ‘masonry’, isResizable : true }); }).trigger(‘resize’); }); })(jQuery); /* <![CDATA[ */ var rlArgs = {“script”:”swipebox”,”selector”:”lightbox”,”customEvents”:””,”activeGalleries”:”1″,”animation”:”0″,”hideCloseButtonOnMobile”:”0″,”removeBarsOnMobile”:”0″,”hideBars”:”1″,”hideBarsDelay”:”5000″,”videoMaxWidth”:”1080″,”useSVG”:”1″,”loopAtEnd”:”0″}; /* ]]> */
…but hwen I used the Updates section of the main Dashboard, it updated correctly.
Suggestions as to why it would not update from Plugins section, but would work fine from main Dashboard?
]]>When selecting the option:
Issue a Page Not Found (404) error for feed requests
… a request for https://domain.com/feed/ renders the view:source of the 404 page, as if it’s parsed with <pre>
tags. It does not render the template.
The other redirect option does work as advertised.
I would suggest a modification to the else condition on lines 134’ish by changing:
else {
$wp_query->is_feed = false;
$wp_query->set_404();
status_header( 404 );
}
to:
else {
$wp_query->is_feed = false;
$wp_query->set_404();
status_header( 404 );
wp_redirect(home_url('404'), 302);
exit();
}
Works by forwarding the user requesting domain.com/feed/ to domain.com/404 – ideally it should 404 without the URL rewrite, but for now this should work with most WP installs.
Hope this helps others.
]]>Hello
Can this plugin be updated to also redirect to custom post types and not just blog posts?
My Blog posts redirect /feed to the correct blog post entry but links to other pages using a custom post type still go to a 404.
Thanks.
]]>When I go to mydomain.tld/feed it still shows the feed…anyone else have this issue? Not sure why…plugin is installed…
]]>I want to disable my RSS feed for a few days while I do some site work reposting all content, etc. I have a variety of auto posting services that read the RSS feed, and I don’t want them posting all of my “activity”.
Is your plug-in designed to allow the RSS feeds to be reactivated at a later date?
If so, please post a document or description that explains the proper process to re-enable the RSS feeds at a future date?
Regards,
Adam
Throwing a run time error on line 68. Thanks!
]]>First off, great job on this plugin!
I added BBPress support to the plugin and I was looking for a repo on Github to fork but I didn’t see one.
I also added a Singleton method to ensure the feed filters are only ever run once per page load.
Here is the plugin with my changes to disable BBPress feeds:
<?php
/*
Plugin Name: Disable Feeds
Plugin URI: https://www.ads-software.com/extend/plugins/disable-feeds/
Description: Disable all RSS/Atom feeds on your WordPress site.
Version: 1.4.0
Author: Samir Shah, BBpress support by Matthew Sigley
Author URI: https://rayofsolaris.net/
License: GPLv2 or later
*/
if( !defined( 'ABSPATH' ) )
exit;
class Disable_Feeds {
private static $object = null;
function __construct() {
if( is_admin() ) {
add_action( 'admin_init', array( $this, 'admin_setup' ) );
}
else {
add_action( 'wp_loaded', array( $this, 'remove_links' ) );
add_action( 'template_redirect', array( $this, 'filter_feeds' ), 1 );
add_filter( 'bbp_request', array( $this, 'filter_bbp_feeds' ), 9 );
}
}
/*
* Singleton instance static method
*/
static function &object () {
if ( ! self::$object instanceof Disable_Feeds ) {
self::$object = new Disable_Feeds();
}
return self::$object;
}
function admin_setup() {
add_settings_field( 'disable_feeds_redirect', 'Disable Feeds Plugin', array( $this, 'settings_field' ), 'reading' );
register_setting( 'reading', 'disable_feeds_redirect' );
register_setting( 'reading', 'disable_feeds_allow_main' );
}
function settings_field() {
$redirect = $this->redirect_status();
echo '<p>The <em>Disable Feeds</em> plugin is active, By default, all feeds are disabled, and all requests for feeds are redirected to the corresponding HTML content. You can tweak this behaviour below.</p>';
echo '<p><input type="radio" name="disable_feeds_redirect" value="on" id="disable_feeds_redirect_yes" class="radio" ' . checked( $redirect, 'on', false ) . '/><label for="disable_feeds_redirect_yes"> Redirect feed requests to corresponding HTML content</label><br /><input type="radio" name="disable_feeds_redirect" value="off" id="disable_feeds_redirect_no" class="radio" ' . checked( $redirect, 'off', false ) . '/><label for="disable_feeds_redirect_no"> Issue a Page Not Found (404) error for feed requests</label></p>';
echo '<p><input type="checkbox" name="disable_feeds_allow_main" value="on" id="disable_feeds_allow_main" ' . checked( $this->allow_main(), true, false ) . '/><label for="disable_feeds_allow_main"> Do not disable the <strong>global post feed</strong> and <strong>global comment feed</strong></label></p>';
}
function remove_links() {
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
}
function filter_feeds() {
if( !is_feed() || is_404() )
return;
if( $this->allow_main()
&& ! ( is_singular() || is_archive() || is_date() || is_author() || is_category() || is_tag() || is_tax() || is_search() ) )
return;
$this->redirect_feed();
}
//BBPress feed detection sourced from bbp_request_feed_trap() in BBPress Core.
function filter_bbp_feeds( $query_vars ) {
fb( $query_vars );
// Looking at a feed
if ( isset( $query_vars['feed'] ) ) {
// Forum/Topic/Reply Feed
if ( isset( $query_vars['post_type'] ) ) {
// Matched post type
$post_type = false;
// Post types to check
$post_types = array(
bbp_get_forum_post_type(),
bbp_get_topic_post_type(),
bbp_get_reply_post_type()
);
// Cast query vars as array outside of foreach loop
$qv_array = (array) $query_vars['post_type'];
// Check if this query is for a bbPress post type
foreach ( $post_types as $bbp_pt ) {
if ( in_array( $bbp_pt, $qv_array, true ) ) {
$post_type = $bbp_pt;
break;
}
}
// Looking at a bbPress post type
if ( ! empty( $post_type ) ) {
$this->redirect_feed();
}
}
// @todo User profile feeds
}
// No feed so continue on
return $query_vars;
}
private function redirect_feed() {
global $wp_rewrite, $wp_query;
if( $this->redirect_status() == 'on' ) {
if( isset( $_GET['feed'] ) ) {
wp_redirect( remove_query_arg( 'feed' ), 301 );
exit;
}
if( get_query_var( 'feed' ) !== 'old' ) // WP redirects these anyway, and removing the query var will confuse it thoroughly
set_query_var( 'feed', '' );
redirect_canonical(); // Let WP figure out the appropriate redirect URL.
// Still here? redirect_canonical failed to redirect, probably because of a filter. Try the hard way.
$struct = ( !is_singular() && is_comment_feed() ) ? $wp_rewrite->get_comment_feed_permastruct() : $wp_rewrite->get_feed_permastruct();
$struct = preg_quote( $struct, '#' );
$struct = str_replace( '%feed%', '(\w+)?', $struct );
$struct = preg_replace( '#/+#', '/', $struct );
$requested_url = ( is_ssl() ? 'https://' : 'https://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$new_url = preg_replace( '#' . $struct . '/?$#', '', $requested_url );
if( $new_url != $requested_url ) {
wp_redirect( $new_url, 301 );
exit;
}
}
else {
$wp_query->is_feed = false;
$wp_query->set_404();
status_header( 404 );
}
}
private function redirect_status() {
$r = get_option( 'disable_feeds_redirect', 'on' );
// back compat
if( is_bool( $r ) ) {
$r = $r ? 'on' : 'off';
update_option( 'disable_feeds_redirect', $r );
}
return $r;
}
private function allow_main() {
return ( get_option( 'disable_feeds_allow_main', 'off' ) == 'on' );
}
}
$Disable_Feeds = Disable_Feeds::object();
]]>
Tested with WP 4.1 in multisites mode, and got the white screen of death for subsites that activated the plugin.
]]>Does this disble all feeds like…
example.com/wp/myname/feed?
example.com/wp/groups/name/feed?
Hi
This has been a good plugin – but I run a lot of sites and have to be VERY wary of updates….
Can you please tell me what “More robust feed redirection.” means?
Change logs typically itemize what was done – and in some cases updates break a lot of things, as I’m sure you know. Not seeing good feedback on an update is a Red Flag to me. (especially after a major WordPress roll out with a lot of plugins upgrading in its path)
Thanks.
bcr8tive~
]]>Hi, have been using ‘Disable Feeds’ but would now like to allow the feeds. Disabled the plugin and re-saved the settings/reading and settings/permalinks, however still getting the “https://www” to “feed://www” redirect. Checked the htaccess, functions.php and cleared all caches but nothing seems to work. Is there a particular procedure to restoring the feeds? Thanks!
]]>Hello,
I wanted to use this plugin to disable feeds for a websites custom post type pages so that the “comment feed” urls for those pages would redirect to the html version. The reason I want to do this is the comment feed urls for these custom post type pages don’t exist and are throwing up lots of 404s on Google Webmaster Tools.
I configured the settings to redirect to the html version of the content and also checked the box for keeping the main feed and comments feeds active. Saved settings and tested. Nothing happened.
I unchecked the box for keeping the main feeds, saved and tested. Nothing happened.
It appears this plugin doesn’t work at all in 3.8.1. Or perhaps it has a conflict with another plugin on the site (although everything else looked and behaved normally).
Any ideas?
Thanks!
]]>Hey,
Is it possible to add into the plugin functionally the option to disable the content from appearing in the feed but still having the feed with the titles only.
This, in a way, partly disable feeds and is useful for private feeds that are not used for blogging. This allows the people using it to see when something is posted, but they have to log in to see the content.
I’ve found guides for doing it myself:
https://code.tutsplus.com/tutorials/extending-the-default-wordpress-rss-feed–wp-27935
But I think it also fits into this plugin, so I thought of asking ??
Cheers
]]>Hi solarissmoke, I like the plugin. Thank you for it.
Around the time I installed it the search queries in my Google webmaster tools stopped updating. Do you think its possible that this plugin could cause that to happen?
]]>