WordPress.org

Ready to get started?Download WordPress

Forums

[resolved] Bug in function.php. Bad implementation. (8 posts)

  1. Vitor Carvalho
    Member
    Posted 3 years ago #

    Hello.
    I'm just developing a new plugin called "Hide Comments Feature" which hides from admin area all traces of Comments, so people who don't need this feature will never see it.
    As TwentyTen is the default wordpress theme, I think my plugin must be compatible with it.

    I have noticed a bad implementation in funtions.php that lead me to this
    Notice: Undefined index: WP_Widget_Recent_Comments in /var/www/wordpress/wp-content/themes/twentyten/functions.php on line 431

    Actual, this funtion is:

    function twentyten_remove_recent_comments_style() {
    	global $wp_widget_factory;
    	remove_action( 'wp_head', array( $wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style' ) );
    }
    add_action( 'widgets_init', 'twentyten_remove_recent_comments_style' );

    But it doesn't analisys if the WP_Widget_Recent_Comments is active. You should do that for compatibility with plugins.

    Patch:

    function twentyten_remove_recent_comments_style() {
    	global $wp_widget_factory;
    	if( isset( $wp_widget_factory->widgets['WP_Widget_Recent_Comments'] ) ) {
    		remove_action( 'wp_head', array( $wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style' ) );
    	}
    }
    add_action( 'widgets_init', 'twentyten_remove_recent_comments_style' );

    Thankyou in advance!

  2. You can't expect EVERY theme to be compatible with EVERY plugin. This is a case where you have to customize your theme to work with your plugins.

    And I would suggest a child theme, as direct changes to the TwentyTen theme will be overwritten when you upgrade WordPress.

    Since this is your plugin, I would put a note in the FAQ under 'I get this error...' and how to fix it.

  3. Vitor Carvalho
    Member
    Posted 3 years ago #

    I'm sorry Ipstenu, I think you misunderstood me: YOU actually have a BUG in your TwentyTen theme.
    Since WordPress is a modular framework and you can remove or add functions, widgets, plugins, whatever, before you remove anything, even if it is by default in wordpress instalations, you have to evaluate if it is there or not.
    It's not a compatibility thing with my plugin, this is a good practice in any modular collaborative system.
    Cheers

  4. Actually, I don't think that Ipstenu has a bug in her TwentyTen theme, considering that she doesn't use it, and that she's a volunteer here just like the rest of us.

    If you want to report a bug, please follow this guide: http://codex.wordpress.org/Reporting_Bugs

  5. Vitor Carvalho
    Member
    Posted 3 years ago #

    LOL James. Thanks, I tought that she was the official developer. I will follow the guide.
    Thank you again.

  6. You're welcome! :)

  7. I actually do use TwentyTen, just not on my personal site. ;) I don't think it's a 'bug' per se, but it's definitely poor coding practice not to check for that. On the other hand, as I can't understand why you need a plugin to hide the comments area from an admin, it's 'understandable.'

    If you turn comments off on your site, nothing gets put in there, and all you have is the menu on the backend, which ... I don't think I'd go about it by removing the widget class like that.

    You're still going to run into a LOT of themes that might have this problem, so I'd still put something in the FAQ to cover it.

  8. Vitor Carvalho
    Member
    Posted 3 years ago #

    Yes, I think you are right Ipstenu. Well, the purpose of this plugin is to be used theme developers, designers, etc, for their clients who don't need comments feature. Just that!
    Maybe I should right down a FAQ for that known issue.

    Thank you again

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags