Opened 11 years ago
Closed 10 years ago
#30071 closed defect (bug) (fixed)
Notice triggered by wp_fullscreen_html when using wp_editor and no global $post is set
Reported by: |
|
Owned by: |
|
---|---|---|---|
Milestone: | 4.2 | Priority: | normal |
Severity: | normal | Version: | 4.0 |
Component: | Editor | Keywords: | has-patch |
Focuses: | Cc: |
Description
When wp_editor() is called in contexts when no global post is defined (i.e. in widgets administration page) a notice is triggered as following:
Notice
Trying to get property of non-object in wp-includes/class-wp-editor.php:1253
Stack:
_WP_Editors::wp_fullscreen_html()
_WP_Editors::editor_js()
do_action('admin_print_footer_scripts')
The code triggering the notice is the following:
<?php if ( $post->post_status == 'publish' ) _e('Updated.'); else _e('Saved.'); ?>
and could be easily fixed as following
<?php if ( $post && $post->post_status == 'publish' ) _e('Updated.'); else _e('Saved.'); ?>
An easy way to reproduce the issue is to install the Black Studio TinyMCE widget plugin, go to Widgets page and debug with Query Monitor plugin.
Further info here
Attachments (1)
Change History (16)
#3
in reply to:
↑ 2
;
follow-ups:
↓ 4
↓ 6
@
10 years ago
Replying to valendesigns:
... One thing to mention though is that you need to
cd
into thewp-includes
directory to apply the patch or you get a "No such file or directory" error in the terminal. Not a big deal, but thought I would mention it.
I followed this tutorial to create the patch with Tortoise. Could you suggest how to get the correct path inside the patch file with Tortoise?
#4
in reply to:
↑ 3
@
10 years ago
I followed this tutorial to create the patch with Tortoise. Could you suggest how to get the correct path inside the patch file with Tortoise?
Sorry, someone else would need to answer that question. I only use the Terminal and haven't used Tortoise, so I can't really be of any help with that specifically. I'm still new here and I don't know if the path in the patch is technically wrong or not.
#6
in reply to:
↑ 3
;
follow-up:
↓ 7
@
10 years ago
Replying to marcochiesi:
Replying to valendesigns:
... One thing to mention though is that you need to
cd
into thewp-includes
directory to apply the patch or you get a "No such file or directory" error in the terminal. Not a big deal, but thought I would mention it.
I followed this tutorial to create the patch with Tortoise. Could you suggest how to get the correct path inside the patch file with Tortoise?
You will need to be in the root directory of your WordPress SVN checkout (the folder you created the SVN checkout in). The directory structure in that folder will be as follows:
/src/ /tests/ /tools/ .editorconfig .gitignore .jshintrc .travis.yml Gruntfile.js package.json phpunit.xml.dist wp-cli.yml wp-config-sample.php wp-tests-config-sample.php
In that folder, right-click and select SVN Create Patch from the TortoiseSVN context menu.
Once the patch is created and saved, you should see the proper path at the top of the file. :
Index: src/wp-includes/class-wp-editor.php =================================================================== --- src/wp-includes/class-wp-editor.php (revision 30275) +++ src/wp-includes/class-wp-editor.php (working copy)
#7
in reply to:
↑ 6
;
follow-up:
↓ 8
@
10 years ago
Replying to kpdesign:
...
In that folder, right-click and select SVN Create Patch from the TortoiseSVN context menu.
Thanks for the heads up, I was right clicking on the file, not on the base folder.
By the way, which is the correct folder to be used as base? In the tutorial the paths were like this:
Index: wp-includes/class-wp-editor.php
and I also foundthis other article with the same path, while in your example it was:
Index: src/wp-includes/class-wp-editor.php
#8
in reply to:
↑ 7
@
10 years ago
Replying to marcochiesi:
Replying to kpdesign:
By the way, which is the correct folder to be used as base? In the tutorial the paths were like this:
Index: wp-includes/class-wp-editor.phpand I also foundthis other article with the same path, while in your example it was:
Index: src/wp-includes/class-wp-editor.php
If you check out WordPress via SVN from http://develop.svn.wordpress.org/trunk/, you'll get the folder structure I posted above, and the path in your patch will look like
Index: src/wp-includes/class-wp-editor.php
when you create the patch from the root directory.
The tutorial in the handbook will be updated to reflect this.
#9
@
10 years ago
- Milestone Awaiting Review deleted
- Resolution set to wontfix
- Status changed from new to closed
DFW mode has changed in 4.1.
#10
@
10 years ago
- Resolution wontfix deleted
- Status changed from closed to reopened
Even if DFW mode changed, the issue reported is still present in WordPress 4.1. The fix would be extremely simple as shown above, and by the way, it's a good programming practice to check the validity of an object before using its properties.
In WP 4.1 the code is located at line 1319 of wp-includes/class-wp-editor.php.
Please fix it.
#11
@
10 years ago
That code isn't used anywhere anymore and will most likely be removed from core soon.
#13
@
10 years ago
Another user reported this problem (see topic) blaming it was plugin's fault, while the bug is in WP Core.
Please fix it or remove the offending code. Thank you.
I've tested your patch and can verify it does solve the issue. One thing to mention though is that you need to
cd
into thewp-includes
directory to apply the patch or you get a "No such file or directory" error in the terminal. Not a big deal, but thought I would mention it.