Code Snippets
[resolved] Weird! Can't eradicate Fatal error even after removal of snippet from database (10 posts)

  1. Stubborn_Facts
    Posted 2 years ago #

    Not sure what to do next about this issue...

    On a test site, I toyed with some suggested code for invoking the add_editor_style function, found on this site:

    My theme framework doesn't have an editor style sheet, and as far as I could tell, even as of WP 3.5, if it doesn't, you have to manually call up a custom stylesheet you create.

    So...following the tutorial (which matches a number of others available), I:
    Used the code snippet, replacing the generic css file name with the one I'd created and uploaded to what my double-checking told me was the appropriate file directory.

    The custom css file was created using the tutorial's example guide. The syntax in my theme framework had some tricky differences, however. In other words, maybe the error caused had something to do with my test run having some flaws in the css...?

    After I activated the snippet, I got this error:

    Fatal error: Call to undefined function is_rtl() in /home/usr/public_html/testsite2/wp-includes/theme.php on line 1217

    (put "usr" in place of actual name)

    here is the test site link: http://grassrootsne.com/testsite2

    No biggie...I've "broken" my test site several times learning about php and these snippets. It's great that Code Snippets is designed to put the codes in the WP database...I just go to PHPMyAdmin and delete the offensive code if I break things...and poof, problem solved.

    Not this time. Even after I deleted the new snippet...I was still getting the error, only it wasn't site wide, it was after clicking on "Code Snippets" in the Dashboard sidebar, going into the Code Snippets UI, to manage, and then attempting to do anything with any of the snippets or to "Add New".

    So I tried the new posting about using the "Safe Mode" trick, went into Code Snippets, made sure each existing snippet was deactivated, took out the Safe Mode code from wp-config, and then went back and started with the first code in the list...one that had been activated before with no problem and bang!, back to the fatal error.

    I thought perhaps something funky had happened to all of Code Snippets, so, I deactivated and uninstalled the plugin, went to the database and dropped the table from there with the idea of "starting over", but...no dice.

    After a fresh install of Code Snippets, I'm still having the same fatal error after getting into the Code Snippets UI. Obviously, the only current option is to "Add New".

    I've clicked around everywhere on the site, and I don't get the problem anywhere else.

    I've got Code Snippets installed on the production site for which the tester exists, and had installed the test snippet but never activated it and have since deleted it. The other codes, some activated, some not, were also put in the live site version.

    Finally, note that I had 6 total snippets on the site with 3 activated, two inactive, and the sixth being the apparent offender.

    Ideas? I'm stumped. Thanks


  2. Shea Bunge
    Plugin Author

    Posted 2 years ago #

    First of all, the initial error occurred because you are calling add_editor_style() too early. Instead of just calling add_editor_style(), use this code:

    function my_register_visual_editor_style() {
    add_action( 'after_setup_theme', 'my_register_visual_editor_style' );

    Feed free to swap the add_editor_style(); line with your own custom one that loads a different named stylesheet. Keep in mind that these stylesheets are relitiave to your theme directory, and if you leave the snippet as-is is will load editor-style.css from your theme directory.

    I'm not really sure why the error is still persisting. Perhaps you are calling add_editor_style() elsewhere? Or maybe something is messed up in your tester version. It's strange that you only get the error when you visit the Code Snippets UI, as snippets are designed to run everywhere on your site. Are you sure that it's the same error?

  3. Shea Bunge
    Plugin Author

    Posted 2 years ago #

    Also, an error with CSS code will never cause an error message. At worst, the page's design might look a little funny, but little else.

  4. Stubborn_Facts
    Posted 2 years ago #

    Thanks very much for the response. I appreciate the tip on the add_editor_style code. When I solve this problem, I'll be trying it again.

    Thank you for confirming what seemed obvious to me: CSS is styling, it's not code...you can't blow things up with it, but it may look funky.

    It seems inexplicable to me, too that I'd only get the error via Code Snippets, and only in the Admin area. After everything I've done - explained below, the only thing I can come up with is that whatever I did, whether it is by testing a plugin or with my faulty snippet, I permanently altered something that affects the Code Snippets editor area. And whatever it was, it doesn't seem like it can be within Code Snippets itself...since as I explained I deactivated / deleted / dropped the tables from the DB. The current Code Snippets install is fresh.

    This was my first attempt to use add_editor_styles, SO, unless another plugin injected code somewhere to permanently alter a setting to trigger this error, it wouldn't have been in any other "tweak" from me with add_editor_styles.

    I should note shortly before I started getting this error, I tested TinyMCE Advanced and TinyMCE Ultimate. Advanced just wasn't what I was looking for so I deactivated and removed it, without problems. Ultimate didn't work - all of the Visual Editor buttons disappeared. Since it wasn't going to work with my configuration, I deactivated, deleted, etc.

    Since these two plugins are obviously affect editors, generically, if anything altered code anywhere in my install, these would be the likely suspects. The thing that makes no sense is that both plugins explicitly instruct regarding add_editor_style and require deliberate additional steps (adding code in one case, turning on a setting in another). It seems to me it would have to have something to do with the language/code associated with the is_rtl()...but I know less than enough to be dangerous.

    Note, again, with almost an identical configuration on the actual live site associated with this tester site, I do have Code Snippets running just fine. This experimental add_editor_style was not activated, and of course, I didn't test either TinyMCE Ultimate or Advanced with it. In other words, those three things seem obvious variables here.

    Having no answers, I decided to try some basics:

    Deactivated all of the plugins except Code Snippets and tried to access it again. I can click "Manage" from either the Dashboard side bar or from within "Plugins", but anytime I click on "Add New", I get the same error.

    With all plugins but Code Snippets deactivated, I switched to Twenty Twelve for the theme. Same problem.

    And then I decided to do some things I needed to do anyway, in case they cleared up any corrupted files, etc...
    I cleaned up and optimized the database. Since this is a test site, I've done...well, a lot of testing. I'm learning that plugins and themes can leave a LOT of garbage behind and I've read reports about some problems that can occur with this "residue". HALF of the entries were stuff left behind as noted and they are gone.

    Checked my folders via FTP to see if any folders weren't deleted upon removing plugins/themes. There were a couple there, so I deleted them.

    I checked my error logs via my hosting account. The last error is on the date mentioned. There are no error messages after April 2:
    [02-Apr-2013 07:34:02] PHP Parse error: syntax error, unexpected T_STRING in /home/ginmain/public_html/testsite2/wp-content/plugins/code-snippets/code-snippets.php(1090) : eval()'d code on line 6

    I'm sure I'm not telling you anything you don't know, but here is the code referenced in the error I get when I click "Add New" in Code Snippets:

    Line 1217
    if ( is_rtl() ) {

    The section it's from:

     * Add callback for custom TinyMCE editor stylesheets.
     * The parameter $stylesheet is the name of the stylesheet, relative to
     * the theme root. It also accepts an array of stylesheets.
     * It is optional and defaults to 'editor-style.css'.
     * This function automatically adds another stylesheet with -rtl prefix, e.g. editor-style-rtl.css.
     * If that file doesn't exist, it is removed before adding the stylesheet(s) to TinyMCE.
     * If an array of stylesheets is passed to add_editor_style(),
     * RTL is only added for the first stylesheet.
     * Since version 3.4 the TinyMCE body has .rtl CSS class.
     * It is a better option to use that class and add any RTL styles to the main stylesheet.
     * @since 3.0.0
     * @param mixed $stylesheet Optional. Stylesheet name or array thereof, relative to theme root.
     * 	Defaults to 'editor-style.css'
    function add_editor_style( $stylesheet = 'editor-style.css' ) {
    	add_theme_support( 'editor-style' );
    	if ( ! is_admin() )
    	global $editor_styles;
    	$editor_styles = (array) $editor_styles;
    	$stylesheet    = (array) $stylesheet;
    	if ( is_rtl() ) {
    		$rtl_stylesheet = str_replace('.css', '-rtl.css', $stylesheet[0]);
    		$stylesheet[] = $rtl_stylesheet;
    	$editor_styles = array_merge( $editor_styles, $stylesheet );

    I have no idea what to say, other than, are there any standard WordPress files (i.e. theme.php...if I'm correct that it is one) which I can simply overwrite? Something is mucked up here and it must be in a WordPress file is all I can come up with.

    I appreciate your taking the time to look over my information.

  5. Stubborn_Facts
    Posted 2 years ago #

    Would love some further input on this. If I don't hear a reply with any additional ideas, I'm going to have to possibly wipe my test site out entirely and reinstall everything to clear the problem.

  6. Shea Bunge
    Plugin Author

    Posted 2 years ago #

    I'm sorry for not getting back to you sooner. I've been rather busy lately, and while I read through your post, I couldn't really work out what the problem is. It's really strange… I understand the cause of the initial error, but as for why is persists… hmm, I'll have to do some tests.

    The error about is_rtl() has nothing to do with languages or similar. It's just a function used by add_editor_style() that had not been defined yet when the snippet executed. Snippets with this plugin run earlier than the theme's functions.php, and that is why this function was not yet defined.

    I wouldn't consider destroying your test site just yet if I were you, but it may be helpful if you tried using that faulty snippet on a new test site and see if you get the same results. I will also try and see if I receive the same error and results when I try it on my test site. Don't give up hope; I'm willing to work through resolving this issue with you. :)

  7. Shea Bunge
    Plugin Author

    Posted 2 years ago #

    Hi Stubborn Facts,

    Perhaps it would be best if you could send be an archive of the website files and a SQL database dump (feel free to change passwords or remove private info), so I can have a look at what's going wrong. If this route seems the best to you, find my email at http://bungeshea.com/contact/

  8. Stubborn_Facts
    Posted 2 years ago #

    HI Shea,
    Don't worry about the not getting back to me. I probably sounded panic stricken, but I didn't mean to. Fortunately, the test site has a theme framework - Catalyst - which makes the exportation of almost every setting a LOT easier than anything I've worked with before.

    Sure, deleting and reinstalling IS some work...probably about 1 hour total, but it's not an hour solid where you can't do anything else at all. But, of course I'd prefer not to.

    My primary concern re: time is that there are new snippets I'm wanting to test on that site before I ever take them live. Minus content, it's a mirror of the live site. I can find out if I get plugin / theme conflicts. You see what I mean.

    So, I've noted that deleting and reinstalling isn't the end of the world, but to me the main problem with that approach is one never knows the root cause, whatever it is. Maybe it's the theme, for instance. I think of it as a lost learning opportunity. People who know more and are really into this stuff probably think of it as a puzzle. I imagine as the developer, you might want to know for future reference, even if it is my theme (or whatever).

    You get the picture.

    Anyway, I have a couple of other test sites just sitting around and was going to do as you suggested sometime over the weekend - try out the funky snippet that caused the trouble and see what happens. I'd take whatever test site I'd use to Twenty Twelve and shut off all of the plugins, first.

    Let me know if you'd like me to try that before sending the files, or if you want them now. It's a test site, so it's no biggie on removing stuff. I mean...if you wanted to go log into the site in the future and take tour...umm...more power to you. ;-)

    Just let me know re: files and I'll also get back to you after I've had a swing at trying to blow up another site.


  9. Shea Bunge
    Plugin Author

    Posted 2 years ago #

    Thanks for reporting this issue, and giving me a chance to find out what's going wrong. I'm definitely interested in fixing any bugs or errors with the plugin to make it as great as possible.

    As for actually testing out your site, well, it's up to you whether you send me files for me to setup on my server, or give me access to one of your online testing sites. Either way will being me closer to finding the source of this issue. I guess an advantage of me testing the site on my development server is I have access to debugging tools that I might not be able to use otherwise.

    Thanks again for following this issue through; good luck sorting things out :)

  10. Stubborn_Facts
    Posted 2 years ago #

    I've been wanting to check in with you just to say that I didn't just disappear or not intend to follow up. A project came up that took all of my time for about 10 days. I'm going to be getting back to this this week.

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic