__group__ ticket summary owner component _version priority severity milestone type _status workflow _created modified _description _reporter Comments Needs Dev / Bug Wrangler Feedback 28821 Admin page registered with add_menu_page() allows access through wrong URls and hightlights wrong top level menu item Administration 3.9.1 normal normal defect (bug) new dev-feedback 2014-07-10T21:05:19Z 2019-06-04T19:26:10Z "'''Steps to reproduce:''' * Add a top level admin menu page (with the plugin provided below). * Access the new top level admin menu via the menu item (bottom of menu) * Try to access it via one of the following URLs {{{ http://example.com/wp-admin/options-general.php?page=trac http://example.com/wp-admin/tools.php?page=trac http://example.com/wp-admin/admin.php?page=trac http://example.com/wp-admin/edit-comments.php?page=trac http://example.com/wp-admin/edit.php?post_type=page&page=trac http://example.com/wp-admin/upload.php?page=trac http://example.com/wp-admin/edit.php?page=trac http://example.com/wp-admin/index.php?page=trac ... etc ... // Sub menu items that have the same behavior http://vagrant.local/wp/wp-admin/plugin-install.php?page=trac http://vagrant.local/wp/wp-admin/themes.php?page=custom-header&page=trac http://vagrant.local/wp/wp-admin/themes.php?post-new.php?post_type=page&page=trac ... etc ... }}} '''Bug description:''' Every of the above links will (falsely) work and bring you to the registered page. The top level menu item will be hightlighted while the sub menu item does not exist. The following URls will work (with above bug) as well, but ''not'' highlight any menu item: {{{ http://example.com/wp-admin/edit-tags.php?taxonomy=post_tag&page=trac http://example.com/wp-admin/edit-tags.php?taxonomy=category&page=trac }}} I would not really consider this a ''""feature""''. ---- '''Test Plugin''' {{{

Hello Trac!

queried_object) && For example, when we have akamai injecting GET parameters to our home page, it just goes in an infinite 301 loop due to line 175 now evaluating TRUE when in the past it would evaluate as FALSE, and we'd like that back. Please and thank you awesome wordpress team!" solomon123br 7 Needs Dev / Bug Wrangler Feedback 31300 redirect_canonical returns too early Canonical normal normal defect (bug) new dev-feedback 2015-02-11T17:00:31Z 2019-12-06T10:01:04Z "If `$redirect_url` is not set or is not equal to `$requested_url` then `redirect_canonical()` returns early and does not trigger the `redirect_canonical` filter. This prevents plugins from being able to alter the canonical URL. This bug was partially addressed in #8975 (it still returned early when the redirect and requested URL are the same), but this was reverted in #11700 without any indication as to why. The attached patch ensures the filter triggers even when the `$redirect_url` is not set or is the same as `$requested_url`." stephenharris 3 Needs Dev / Bug Wrangler Feedback 18385 "Canonical redirections not suited for Queries with multiple query vars and ""pretty permalinks"" in general" Canonical 3.2 normal normal enhancement new dev-feedback 2011-08-12T09:05:03Z 2019-06-04T19:22:40Z "When the Canonical code was originally written, it served it's purpose quite well. However, over the years the number of Query vars which can be used to access content via has increased, and so have the number of archive views. This has lead to increased complexity in the Taxonomy canonical code which has needlessly caused bugs. What I'm proposing, is that it might be time to lay to rest the current `if.. elseif.. elseif..` style checks, It's not possible for 1 if branch to handle every single access point without duplicating another branch. As a result, I've put a half-finished together alternate version of Canonical, It's based on tallying up which query vars have been used/accounted for and removing any duplicates.. It's certainly not the best, but it's fairing better with the unit tests so far. {{{ Unit Testing: http://unit-tests.trac.wordpress.org/browser/wp-testcase/test_includes_canonical.php Before: FF.......FFFF..FFF.....F......FFFFFF.F....F.....FF....FF... After: FF...........FFF..................FF..................F.... }}} It's a work in progress, but it's worth considering IMO. Attaching a diff, and the full file (since the diff is going to be rather unreadable in some sections)" dd32 1 Needs Dev / Bug Wrangler Feedback 20283 Create new variable or function in $wp_query object to get canonical URL of any site's page Canonical 3.3.1 normal normal enhancement new dev-feedback 2012-03-22T14:42:36Z 2019-06-04T19:22:53Z "For the sake of Search Engine Optimization it's recommended to set canonical URL inside tag in any site's page. Incorrect URL can exist in search engine index. For example: http://example.com?some_param=some_val&cat=3,4. URL points to categories with id equals 3 and 4, but we have another unnecessary parameter 'some_param'. It's malicious! We must set canonical URL to http://example.com?cat=3,4. So It's advance to have canonical URL generated some way. I propose to set function or variable inside WP_Query class to retrieve canonical URL to any opened page. In WP_Query we have variable WP_Query::query which consists of all necessary parameters for that propose. But we must use $wp_rewrites also. Any thoughts? " egorpromo 3 Needs Dev / Bug Wrangler Feedback 10543 Incorrect (non-UTF-8) character handling in tag's name and slug westi* Charset 2.8.2 normal normal defect (bug) accepted needs-unit-tests 2009-08-04T05:26:11Z 2019-06-04T19:21:33Z "Incorrect (non-UTF-8) character tag's name and slug are handled in different way: name is truncated on 1st such character, and in slug they are just removed (no truncation). WP should handle both in the same way - drop invalid characters, instead of truncation. I found this issue recently. One of the Polish programs for adding posts to the Wordpresses does not encode tags in UTF-8 - it left them in ISO-8859-2. I notified author of this bug. Unfortunately there are many copies around, so it may take a long time before everyone upgrade." sirzooro 20 Needs Dev / Bug Wrangler Feedback 30909 Allow passing ID for comment_form container and title Comments normal normal defect (bug) new dev-feedback 2015-01-05T13:01:56Z 2019-06-04T19:27:27Z "Right now, there's a `div` hardcoded with `#respond` and a `h3` hardcoded with `reply-title`. These make it hard for the comment form to be used on archive pages, as they assume the comment form is only ever output on single pages. (There are other IDs output in the form, however these are controllable through `id_form` and `id_submit`)" rmccue 8 Needs Dev / Bug Wrangler Feedback 12363 Comment permalink wrong when only listing one comment type wonderboymusic Comments 3.0 normal normal defect (bug) assigned dev-feedback 2010-02-24T14:31:51Z 2019-06-04T19:21:46Z "If you pass the `type` parameter to `wp_list_comments()` (for example, to show comments only and no pings), then comment permalinks can easily use the wrong page number as they expect there to be pings included. This is apparent after leaving a comment and WordPress attempts to redirect back to your new comment. At first I was thinking you could tell WordPress that you're filtering to a type and it could compensate when determining the page number, but then I realized perhaps it'd just be better for `wp_list_comments()` to check if there were 0 comments returned for the query and if so, see if there are any of that type of comment available. If so, then we know we're on too high of a page number and can instead display the highest existing page. Then again this introduces SEO issues. Ideas on what to do are welcome." Viper007Bond 4 Needs Dev / Bug Wrangler Feedback 35651 No longer any consistent way to add content to bottom of comments form Comments 4.4 normal normal defect (bug) new dev-feedback 2016-01-28T22:12:22Z 2019-08-19T01:44:25Z "In #34731, there was a discussion on whether `comment_notes_after` should be directly after the comment form (now at the top by default), or at the bottom above the submit form (as the documentation described). The decision was to change the documentation. However, this now leaves no consistent way for themes/plugins to add content to the bottom of the form, above the submit button. Using `comment_notes_after` was a popular method to add notes like terms and conditios, or a subscribe checkbox etc, and consistent with the old documentation. All of these themes/plugins that relied on the positioning in the documentation will now have this output in the wrong place in the form. `comment_form_after_fields` isn't an alternative since it only applies when the user is logged out." smerriman 5 Needs Dev / Bug Wrangler Feedback 16365 Comment transition for new comments Comments 3.1 normal minor enhancement new needs-docs 2011-01-24T21:07:46Z 2019-06-04T19:22:11Z "As far as I can tell wp_transitions_comment_status() does not get called for new 'comments' based on my testing and review of comment.php in wp-includes. There is a similar transition for posts that gets called for new 'posts' including hooks like 'new_to_publish' and 'new_to_private'. I feel that there should be a similar hook to this form comments so that plugins can hook into new comments differently from comments moved from one existing status to another (like comment_unapproved_to_approved'." MattyRob 24 Needs Dev / Bug Wrangler Feedback 22164 "Move comment ""keyboard shortcuts"" setting to comments -> screen options" Comments normal normal enhancement new dev-feedback 2012-10-11T14:14:23Z 2019-06-04T19:23:27Z "Seems like it would make more sense to move the comment ""keyboard shortcuts"" setting from ""Your Profile"" to the screen options pane of edit-comments.php. Something like: [[Image(http://f.cl.ly/items/1k210Z2V1o0b350I1n0V/keyboard-shortcuts.jpg)]]" lessbloat 8 Needs Dev / Bug Wrangler Feedback 23179 New avatar related option - use gravatar only for registered users Comments normal normal enhancement new dev-feedback 2013-01-11T15:40:59Z 2019-06-04T19:23:48Z "The use of gravater is problematic because there is no attempt to verify that a comment with which an email was used was actually left by the owner of the email (AFAICT gravatar doesn't even have an API for authentication). This makes impersonating to someone else that have a gravatar in a wordpress site comments much too easy. IMO non autogenerated gravatars should be displayed by default only for users for which it is known that they actually own the email address, which are usually only the registered users." mark-k 4 Needs Dev / Bug Wrangler Feedback 16612 WordPress should return nocache headers for requests with comment cookies Comments normal normal enhancement new dev-feedback 2011-02-21T22:45:21Z 2019-06-04T19:22:17Z "Most themes, when displaying the comment form, change the HTML to pre-fill username, email address, and website when comment cookies are received in the HTTP request. Since the response does not have explicit nocache headers, per RFC2616 (http://www.ietf.org/rfc/rfc2616.txt) intermediate caches can use heuristics to determine the cache TTL for the response. Since there is 0 freshness data in the response, it is not really possible to perform good heuristics, but in practice, caches will assign a default TTL to this type of response. The result is that private information input by user A when submitting a comment can be returned to user B when making a request for the same URL. To protect ourselves against this, we should call nocache_headers() when comment cookies are sent and the comment form is being displayed. Alternatively, we can send nocache headers for all requests with comment cookies regardless of the comment form being displayed or not (probably easier and maybe safer). http://humboldtherald.wordpress.com/2011/01/27/gremlins/ is a story likely caused by an aggressive cache and the lack of nocache headers." barry 7 Needs Dev / Bug Wrangler Feedback 12257 wpdb Scales Badly Due to Unnecessary Copies of All Query Results Database normal critical defect (bug) assigned dev-feedback 2010-02-17T03:08:06Z 2019-06-04T19:21:45Z "While working on #11726, I encountered a reproducible crash in wpdb::query() The following code causes memory exhaustion on large result sets: {{{ while ( $row = @mysql_fetch_object($this->result) ) { $this->last_result[$num_rows] = $row; $num_rows++; } }}} The memory exhaustion message is error-controlled, causing a white screen of death even in debug mode. I searched wp-db.php for references to $this->last_result, and I found no justification for these object reference copies. $this->last_result '''should''' be maintained as a MySQL resource and properly optimized using the MySQL client layer instead of this PHP nonsense. Tagging for dev-feedback to discuss which Milestone is appropriate." miqrogroove 31 Needs Dev / Bug Wrangler Feedback 18315 Add an index to the GUID column in the posts table Database 3.2.1 normal normal enhancement reopened dev-feedback 2011-08-02T04:31:01Z 2019-06-04T19:22:38Z "Running queries on the GUID column in the posts table is slow because the column is not indexed. The attached patch adds an index. Note, this affects ticket #18286 - I will update that ticket with appropriate patches to reflect this request." alexkingorg 11 Needs Dev / Bug Wrangler Feedback 20634 dbDelta is unforgiving about field declarations Database 1.5 normal normal enhancement new dev-feedback 2012-05-08T03:27:05Z 2019-06-04T19:23:05Z "the variable type is case sensitive: int(22) != INT(22) the mysql type BOOL or BOOLEAN comes back from the db as tinyint(1): tinyint(1) != BOOLEAN Not a huge issue, just annoying. Makes dbDelta fire off unnecessary sql. " SidHarrell 8 Needs Dev / Bug Wrangler Feedback 59954 Gets error 404 in preview page Editor 6.4 normal major defect (bug) new dev-feedback 2023-11-23T12:34:22Z 2023-12-01T22:20:07Z "In latest version of WordPress 6.4.1, we get error 404. It redirects to a undefined page. For example link preview: /wp-admin/post.php?post=34891&action=edit Gets: /wp-admin/undefined We are using Classic Theme (GeneratePress) and we've tried with latest version of Gutenberg. But we have tried without plugins and other Theme like Twentytwenty four." davidperez 3 Needs Dev / Bug Wrangler Feedback 27076 double newlines inserted before captions Editor 2.6 normal normal defect (bug) new dev-feedback 2014-02-09T13:35:31Z 2019-06-04T19:25:02Z "Steps to reproduce: - Upload some picture in the library and add some caption to it - Edit a post/page using the visual editor and, after some text, insert the picture using the add media button, so a ""caption"" shorttag is created - Go into text editing - Suppress the two newlines that appeared before the ""caption"" shorttag - Go into visual mode - Go into text mode: the newlines reappeared It is important to put something before the picture inserted in order to reproduce the bug, because the two newlines are not inserted if it is at the very beginning of a post/page. This is annoying for example in a table with top-aligned cells, if in a cell you have some text, and in the cell just to the right you have a ""caption"", then the two won't be aligned, since the newlines are converted to an empty paragraph during the rendering. From what I saw, the issue could be fixed by just removing the line n° 124 in wp-admin/js/editor.js: {{{content = content.replace( /\s*\[caption([^\[]+)\[\/caption\]\s*/gi, '\n\n[caption$1[/caption]\n\n' );}}}" arupqfjm 1 Needs Dev / Bug Wrangler Feedback 25070 Add filter to use do_accordion_sections for post metaboxes Editor 3.6 normal normal enhancement new dev-feedback 2013-08-18T15:44:46Z 2019-06-04T19:24:15Z "It'd be really cool to be able to use the new do_accordion_sections to render post metaboxes. Adding a filter to allow devs to do that, will also make easier to render custom styles (tabs or whatever). Attached patch is a really quick proof of concept. " MZAWeb 5 Needs Dev / Bug Wrangler Feedback 51534 Add post type Blocks (reusable blocks) into menu Editor 5.5 normal normal enhancement reopened dev-feedback 2020-10-15T13:41:48Z 2023-05-23T09:00:15Z Because you can manage all reusable blocks - creating new, changing or import from JSON, it will be convenient to have a proper menu link to 'edit.php?post_type=wp_block', possibly in the Appearance menu. oglekler 20 Needs Dev / Bug Wrangler Feedback 22279 WordPress Export/Import deletes carriage returns Export 3.4.2 normal normal defect (bug) new dev-feedback 2012-10-25T20:02:42Z 2019-06-04T19:44:09Z "WordPress export does not translate or escape bare CR characters in a CR/LF pair. They show up unfiltered in the WXR export file. I see this both in post_content and in strings that were serialized into a post_meta field. The CR characters are in the WXR file, unfiltered. Then, WordPress import loses these CR characters. They are simply erased. It may be because SimpleXMLParser can't or won't open the XML file in binary mode, so line ending translation can & does happen. That's just a theory, but if it's true then this behavior might *not* happen on all platforms or with all PHP versions. (I'm seeing this on OS X 10.6.8, PHP 5.4.4.) In the worse case -- mine -- the munged string is a small component of a complex datastructure that is serialized in a postmeta record. In this case, the entire meta_value field is deleted on import, because the data won't unserialize, because its length has changed. It seems to me that WP Export should escape any character that might be threatened in transit. I'm no XML lawyer, but some sources claim that unescaped CR characters are invalid XML. To reproduce: * store a carriage return in a post. * export it to a WXR file. * examine the WXR file for the raw carriage return (`^M`). * import that file. * search for the carriage return." mykle 4 Needs Dev / Bug Wrangler Feedback 35927 _wp_attachment_metadata meta_value wrong type in export Export 4.4.2 normal normal defect (bug) new dev-feedback 2016-02-23T20:50:59Z 2019-10-24T06:06:09Z "this if from an export using wp 4.4.2, the particular post is from Dec 2010. {{{ }}} every width and height value is a string but should be an int! {{{ s:5:""width"";s:3:""150"";s:6:""height"";s:3:""150""; }}} should be {{{ s:5:""width"";i:150;s:6:""height"";i:150; }}} if i edit it manually, the import works. could you provide database migration or something in the next update to fix the values? this don't happen with newer articles." davidak 2 Needs Dev / Bug Wrangler Feedback 36818 Export filter for post meta Export normal normal enhancement new dev-feedback 2016-05-11T20:00:14Z 2019-06-04T19:58:11Z "It would be handy if we had a filter for modifying post meta before it is written to an export file. Our plugin stores serialized arrays in post meta that get corrupted from time to time during the export/import process. The attached patch/filter would allow us to store the data differently in an export file to prevent that from happening. " justinbusa 10 Needs Dev / Bug Wrangler Feedback 9611 Make comment feeds fail with an error code when comments are closed Feeds 2.8 normal normal enhancement new dev-feedback 2009-04-21T14:12:42Z 2019-06-04T19:42:34Z "This is mostly a suggestion as an enhancement. When you close a post's comments and pings, it should no longer output an rss feed. Instead, it should return a not found (404) or gone (410) error and die. Likewise, if all posts and pages on a site disallow comments and pings, the comments feeds should not be broadcast, and should return the same error code. Thoughts?" Denis-de-Bernardy 9 Needs Dev / Bug Wrangler Feedback 9510 Multiple feed fixes and enhancements Feeds 2.7.1 normal major enhancement new dev-feedback 2009-04-11T09:36:47Z 2019-06-04T19:42:32Z Currently, the feed always returns the same subtitle, self link, alternate link and replies link no matter what the page type is. I think they should be different for each page type. peaceablewhale 26 Needs Dev / Bug Wrangler Feedback 19643 Allow array for $extra_fields in request_filesystem_credentials dd32 Filesystem API 3.0 normal minor defect (bug) reviewing dev-feedback 2011-12-22T07:47:38Z 2019-06-04T19:43:38Z The current implementation for passing extra fields through request_filesystem_credentials() does not allow for an array of data to be passed. I came across this issue when trying to process a bulk installation of plugins with my plugin installation class. My patch fixes this from what I can tell and doesn't break anything that I can see from my testing. griffinjt 17 Needs Dev / Bug Wrangler Feedback 48316 "Changeset 46482 breaks upload when using "".."" in upload_path." Filesystem API 5.2.4 normal normal defect (bug) reopened dev-feedback 2019-10-15T21:01:42Z 2024-02-07T13:39:06Z "Hi, We just found out that changeset [46482] in the latest WordPress 5.2.4 broke a huge number of our customer's sites (tens or thousands). We uses a separate subdomain as upload directory. This is done by changing the option ""upload_path"" to ""../../media.example.com/www/"" (and ""upload_url_path"" to ""http://media.example.com""). This change means that new directories (for example ""./2019/10/"") can't be created, which breaks the entire upload functionality. If this changeset fixed some critical vulnerability which can't be fixed another way or if we are the only ones utilizing this feature, so be it. Otherwise this change might have to be reverted and reimplemented some other way. " xpoon 31 Needs Dev / Bug Wrangler Feedback 21537 Email address sanitisation mangles valid email addresses Formatting 3.4.1 normal normal defect (bug) new dev-feedback 2012-08-10T11:24:50Z 2022-10-23T14:32:55Z "If you change your email address to one including an ampersand then we mangle the address with html entities. For example: * This - peter&paul@sitting.in.a.tree.com * Becomes - peter&paul@sitting.in.a.tree.com This is due to the call to {{{wp_filter_kses}}} on {{{pre_user_email'}}} in {{{default-filters.php}}}. The was added in [5906] for #4546. I'm not sure if we need kses filtering for emails - if we do which should probably revert this conversion of the & => & afterwards." westi 9 Needs Dev / Bug Wrangler Feedback 36397 add_query_arg doesn't work with numbered html entities Formatting 2.8 normal normal defect (bug) new dev-feedback 2016-04-01T13:36:24Z 2019-06-04T19:56:44Z "In #20771 we'd like to use `esc_url` instead of `esc_html` to escape the url that is generated by `wp_nonce_url`. Unfortunately this is currently not possible because `add_query_arg` has some buggy behavior with regard to its dealing with hashes in urls. I am creating this ticket to deal with that issue separately. `add_query_arg` searches for the first hash in a url and cuts everything that comes after it from the url as the hashfragment and appends it back at the end of the operation. There are two problems with this: 1. No hash found in the url necessarily indicates a hashfragment. It could also indicate a numbered html entity. 2. If there are multiple hashes in the url, we should probably only look at the last hash present to find a possible hashfragment. This can for instance become a problem when we use`esc_url` on a url with more than one parameter. `esc_url` escapes ampersands by replacing them with their numbered html entity equivalents; `#038;` When I now want to use `add_query_arg` on such a url, the parameters get moved to the end of the url because it thinks everything after the second parameter is a hashfragment. I am adding a patch with a some passing and some failing testcases that cover this issue. I am also adding a patch that takes care of the issue of multiple hashes in the url and fixes the issue for ampersands, which should unblock #20771 if it were committed." omarreiss 1 Needs Dev / Bug Wrangler Feedback 23308 "make_clickable problem with multiple ""Punctuation URL character""" Formatting 3.5.1 normal normal defect (bug) new dev-feedback 2013-01-28T15:09:59Z 2019-06-04T19:44:27Z "make_clickable problem with multiple ""Punctuation URL character"" E.g. {{{ http://www.wordpress.org/some-(parentheses).html }}} Results in this html code: {{{ http://www.wordpress.org/some-(parentheses).html }}} But obvious should be: {{{ http://www.wordpress.org/some-(parentheses).html }}} I suggest to replace: wp-includes/formatting.php:1603 {{{ [\'.,;:!?)] # Punctuation URL character }}} with {{{ [\'.,;:!?)]{1,} # Punctuation URL character }}}" DrPepper75 4 Needs Dev / Bug Wrangler Feedback 11678 wpautop() fails on uppercase closing tags Formatting 2.9 normal normal defect (bug) new dev-feedback 2009-12-31T11:26:11Z 2019-06-04T19:42:47Z "To reproduce, in a post enter: {{{

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

}}} View the post (source) and you get: {{{

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

}}} Because I (incorrectly) entered an uppercase closing

tag, wpautop() thinks there is no closing tag so adds a

, which then often renders as a double

tag. Close if this is not a bug, though I thought it may be good to do some sanitizing or something on uppercase tags. " joehoyle 5 Needs Dev / Bug Wrangler Feedback 30644 """wpautop"" Enhancements" Formatting normal normal enhancement new dev-feedback 2014-12-09T18:35:14Z 2020-08-11T00:30:02Z "Since there are several problems (e.g. invalid markup) with the current ""wpautop"" function I tried to come up with a new approach. The text gets parsed and a little analyzed in order to generate valid and comprehensible markup. The script is not really compatible with the current implementation since whitespaces and line breaks are added differently. Performance is slightly worse, depending on the input (normal text vs. heavy html) of course. Comments in the code are still missing. I think Shortcodes should also be considered in this markup generation process so the additional use of ""shortcode_unautop"" could be avoided. Please let me know what you think and test it if you like. == Sample === Input {{{ paragraph


paragraph test italic normal
paragraph
paragraph
paragraph paragraph
  
  Honor
    this whitespace

paragraph paragraph

paragraph

text
}}} === Output {{{

paragraph


paragraph test

italic
normal

paragraph

paragraph

paragraph

paragraph

  
  Honor
    this whitespace

paragraph

paragraph

paragraph

text
}}}" stefanrz 5 Needs Dev / Bug Wrangler Feedback 26868 Function 'make_clickable()' doesn't make hyperlinks from explicit URLs using the `mailto:`, `tel:` and other schemes that do not start with `//` Formatting 3.8 normal normal enhancement new needs-unit-tests 2014-01-18T16:00:14Z 2019-06-04T19:45:21Z "Function `make_clickable()` tries to recognise URLs and convert these into clickable hyperlinks. The function is by default configured as a filter for comment text. Unfortunately, the function assumes that all explicitly declared URLs begin with the string `//` after the scheme and colon parts which is not the case for the `mailto:`, `tel:` and many other schemes. Such URLs could usefully be made clickable, especially for use on smartphones and tablets. This also leads to inconsistencies between explicitly and implicitly declared URLs. For example, the string `myemail@mydomain.com` is converted into a clickable hyperlink whilst the string `mailto:myemail@mydomain.com` is not. By contrast, the TinyMCE post editor correctly and automatically makes both implicit and explicit `mailto:` links clickable but does nothing with `tel:`. For reference, the syntax of URLs is defined by http://tools.ietf.org/html/std66, the `mailto:` scheme by http://tools.ietf.org/html/rfc6068 and that for `tel:` by http://tools.ietf.org/html/rfc3966. As #16892 has illustrated, parsing URLs can be hard. The use of `wp_allowed_protocols()` may help in detecting which strings we wish to make clickable. Found whilst testing #22946." mdgl 2 Needs Dev / Bug Wrangler Feedback 26759 New Generic Sanitize Functions for Core Formatting 3.8 normal normal enhancement new dev-feedback 2014-01-02T17:54:48Z 2019-06-04T19:45:16Z "Core currently supplies a number of sanitize functions: {{{ sanitize_email() sanitize_file_name() sanitize_html_class() sanitize_key() sanitize_meta() sanitize_mime_type() sanitize_option() sanitize_sql_orderby() sanitize_post_field() sanitize_text_field() sanitize_title() sanitize_title_for_query() sanitize_title_with_dashes() sanitize_user() }}} They all sanitize by usage, not by data type. As such, I (and I suspect others) wind up using these to escape things they weren't initially meant for -- for the sake of brevity, and it's just quicker and leads to tidier code. I believe it could result in better and simpler sanitizing if we were to include sanitize-by-format functions in core. For example, {{{ wp_sanitize_numeric( $raw ); // [\d] wp_sanitize_numeric_float( $raw ); // [\d\.,] allowing both commas and periods as decimal indicator and thousands seperator wp_sanitize_hex( $raw ); // [\da-f] case-insensitive wp_sanitize_alphanumeric( $raw ); // [\da-z] case-insensitive wp_sanitize_letters( $raw ); // [a-z] case-insensitive wp_sanitize( $raw, $regex ); // uses passed in regex to determine what to strip. }}} The specific functions to use are up for discussion. I'm just hoping to make it simpler for users to sanitize data by expected type. As a side note, this will let folks use `wp_sanitize_numeric()` to sanitize integers larger than `PHP_INT_MAX` -- which tumblr and twitter IDs often happen to be for imports and feeds and the like (as casting to `(int)` isn't a good idea)." georgestephanis 3 Needs Dev / Bug Wrangler Feedback 22402 Stripping non-alphanumeric multi-byte characters from slugs Formatting normal normal enhancement new dev-feedback 2012-11-10T05:07:10Z 2019-06-04T19:44:12Z "`sanitize_title_with_dashes()` strips non-alphanumeric characters from a title to create a slug. Unfortunately it only strips ASCII non-alphanumeric characters. Apart from a few exceptions, all multi-byte characters are preserved. This means all non-Western (and plenty of Western) non-alphanumeric characters end up in the slug as they're treated just like any other multi-byte character. As an example, here are some common non-alphanumeric Chinese characters which would ideally be stripped from slugs, but are not: * 。 (U+3002, Ideographic Full Stop, %E3%80%82) * , (U+FF0C, Fullwidth Comma, %EF%BC%8C) * ! (U+FF01, Fullwidth Exclamation Mark, %EF%BC%81) * : (U+FF1A, Fullwidth Colon, %EF%BC%9A) * 《 (U+300A, Left Double Angle Bracket, %E3%80%8A) * 》 (U+300B, Right Double Angle Bracket, %E3%80%8B) Obviously it would be impractical to make a list of ''all'' the non-ASCII characters we want to strip from slugs. The list would be gigantic. So the question is, would it be possible to use Unicode ranges to blacklist (or whitelist) whole ranges of characters to be stripped from (or preserved in) slugs? Is this practical or even desirable? Or would it make more sense to continue using a list of just the most common multi-byte characters to be stripped? The latter makes a whole lot more sense, but the former is a more complete solution. Thoughts?" johnbillion 1 Needs Dev / Bug Wrangler Feedback 13425 Image Gallery of Private Post is publicly displayed Gallery 3.0 normal normal defect (bug) reopened dev-feedback 2010-05-17T20:12:20Z 2019-06-04T19:42:59Z "Might have been forgotten only, I just ran over this inconsistency while beta-testing: '''Description:''' The Image Gallery of a Private Post is displayed (in another post via the Shorttag with id parameter) whereas, when clicking on the images to go to the attachment page, you get a 404 not found. '''Example:''' [http://hakre.wordpress.com/2010/05/17/cui-utils-rev2/#more-1184 Post with Gallery][[BR]] [http://hakre.wordpress.com/2010/05/17/cui-utils-gnu-tools-fur-windows-32-with-a-simple-setup/gnu-win-cui-util-00-setup/ Attachment of that Gallery] '''Steps to reproduce''' Create a new Post, set a title and the Status to private. Save as Draft. Preview it, to get the ID easily from URL. Upload a Bunch of Images. Insert the Gallery Shorttag inside that Post Body. Publish the Post. Create a second new Post Give it a Title and Insert the Gallery Shortcode with the ID from the last Post. Publish. View. Copy the URL. Open another Browser so to have a new User-Session. Visit that URL. '''Expected Behaviour''' You should not see a gallery. '''Behaviour''' You see a gallery. When clicking on a gallery link you get a 404 page. '''Feedback''' I see an inconsitency here but have no Idea how to deal with it. So either the gallery should not be found as well (not found as in 404 but in this case: not output) or the attachment pages should be able to call as well. Related: #11697" hakre 5 Needs Dev / Bug Wrangler Feedback 28801 Walker::walk makes an incorrect assumption if $top_level_elements is empty. General 3.8 normal normal defect (bug) new needs-unit-tests 2014-07-09T16:02:56Z 2019-06-04T19:46:05Z "A colleague of mine was generating a sidebar sub-navigation for one of his projects. The subnavigation contained second-level and third-level navigation elements. The problem my colleague was having was that occasionally third-level elements would not be nested underneath their parent element (also in the list of elements) on some pages. My colleague was calling wp_list_pages with an array of page IDs that he wanted to render in the sub-navigation, wp_list_pages then turned the list of page IDs into a list of Page objects, and it sorted the page objects by their 'menu_order' attribute; the third-level navigational elements all had their 'menu_order' set to 0, whereas the second-level navigational elements all had 'menu_order' set to something more than 0 - causing the third-level elements to be the first elements in the list. wp_list_pages later made a call to Walker::walk, passing along that list of pages. Here is a relevant code snippet from Walker::walk: {{{ /* * When none of the elements is top level. * Assume the first one must be root of the sub elements. */ if ( empty($top_level_elements) ) { $first = array_slice( $elements, 0, 1 ); $root = $first[0]; $top_level_elements = array(); $children_elements = array(); foreach ( $elements as $e) { if ( $root->$parent_field == $e->$parent_field ) $top_level_elements[] = $e; else $children_elements[ $e->$parent_field ][] = $e; } } }}} '''The bug is this code's assumption that the first item in $elements is a suitable root-element for the entire list''' (sentence emboldened for anybody not wanting to read the wall of text). wp_list_pages ordered our list by 'menu_order' which put our 3rd-level elements at the top of the list - causing a 3rd-level element to be treated as the navigation's root. I wrote up a quick fix for this (I'm not sure if it's the best fix, I'm not overly experienced in Wordpress), and for our project we'll use wp_list_pages with a custom walker class that implements my fix. Here is the patch of my fix: {{{ Index: public_html/wp-includes/class-wp-walker.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- public_html/wp-includes/class-wp-walker.php (date 1404915904000) +++ public_html/wp-includes/class-wp-walker.php (revision ) @@ -217,12 +217,34 @@ /* * When none of the elements is top level. - * Assume the first one must be root of the sub elements. + * ~~Assume the first one must be root of the sub elements.~~ Disregard - RJ CGIT 2014-07-09 + * + * ---------- + * + * Modified by Rob Jackson, Castlegate IT; 2014-07-09: + * Do not assume the first element is root, instead loop through the elements + * until we find one whose parent is _not_ in the list of elements. If that fails, + * just fall back to the default behaviour of using the first element. */ if ( empty($top_level_elements) ) { + $root = false; + $element_ids = array_map(function($element){ return $element->ID; }, $elements); + foreach($elements as $element) + { + if (!in_array($element->post_parent, $element_ids)) + { + $root = $element; + break; + } + } + unset($element); + + if ($root === false) + { - $first = array_slice( $elements, 0, 1 ); - $root = $first[0]; + $first = array_slice( $elements, 0, 1 ); + $root = $first[0]; + } $top_level_elements = array(); $children_elements = array(); }}} Kind regards, Rob " rob-castlegate 2 Needs Dev / Bug Wrangler Feedback 28774 Hooking into wp_ajax_upload_attachment General 4.0 normal normal enhancement new dev-feedback 2014-07-07T15:20:25Z 2019-06-04T19:46:04Z "If you want to do something before/after an attachment has been uploaded - or replace the upload function entirely -- there doesn't seem to be a way to do that: For other `wp_ajax_* calls`, you can unhook them and then hook in your own. This doesn't work for `wp_ajax_upload_attachment` because it ends up getting called directly from async-upload.php. If we replace the direct call with another set of `do_action/add_action` (like admin-ajax has) you can now hook into upload like the other ajax actions. See the proposed patch." jshreve 2 Needs Dev / Bug Wrangler Feedback 30798 Ideas for improvements to to wp_die() usages General normal normal enhancement new dev-feedback 2014-12-20T19:34:16Z 2019-06-04T19:47:06Z "When a visitor to or a user of a WordPress powered site encounters a `wp_die()` message (traditionally handled by the `_default_wp_die_handler()` function) it is (likely intentionally) a very jarring experience. Having `wp_die()` produce human readable results is the least amount of assistance we could possibly provide when a not-completely-unanticipated event occurs, and I think in many instances we can provide a more positive experience. Of our current 230 approximate usages, 33 appear to be `Cheatin’; uh?`'s which, while cute and full of personality, aren't particularly helpful to the innocent user who encounters them, nor are they stern enough to deflect any guilty parties from continuing to seek out unauthorized access. The remaining 200 approximate usages typically drop an authorized user into a limbo state where their only option is going back in their browser history and hope their drafted content isn't bungled or lost. Maybe tucking some of these requests behind ajax actions would reduce that redirection? Or maybe enabling themes to have a template hierarchy for handling various error messages would be more user friendly? I don't have a real improvement plan, and don't feel wholly qualified to solve this issue for the entire WordPress community, rather I'm hoping this ticket can foster some discussion about improving this trusted, though somewhat antiquated, piece of WordPress core." johnjamesjacoby 5 Needs Dev / Bug Wrangler Feedback 31559 Meta boxes should have before/after hooks General normal normal enhancement new dev-feedback 2015-03-07T20:38:33Z 2019-06-04T19:47:58Z "Currently there is no way to hook into an existing metabox. If I wanted to modify the featured image metabox (add a checkbox or something), I'd have to unregister the metabox, and re-register w/ my own callback. This is not good for compatibility w/ other plugins, etc. I propose before_callback and after_callback hooks for metaboxes. Basically, we'd replace this: {{{ echo '
' . ""\n""; call_user_func($box['callback'], $object, $box); echo ""
\n""; }}} with: {{{ echo '
' . ""\n""; do_action( 'before_metabox_callback', $object, $box ); do_action( ""before_{$box['id']}_metabox_callback"", $object, $box ); call_user_func($box['callback'], $object, $box); do_action( 'after_metabox_callback', $object, $box ); do_action( ""after_{$box['id']}_metabox_callback"", $object, $box ); echo ""
\n""; }}} " jtsternberg 3 Needs Dev / Bug Wrangler Feedback 31206 Move AJAX action parameters out of the method body and into the declaration. General 4.2 normal normal enhancement new dev-feedback 2015-02-01T23:09:49Z 2019-06-04T19:47:45Z "`admin-ajax.php` has several methods that require an `$action` parameter, then immediately set that parameter in the body of the method to the desired string if it's not set, which seems a bit counter-intuitive. I propose removing the conditional check completely (since it's not checking for a value, just the presence) and move the desired string into the method declaration as a default value." morganestes 3 Needs Dev / Bug Wrangler Feedback 36120 Move wp_*_link() functions into wp-includes General normal normal enhancement new dev-feedback 2016-03-05T14:51:04Z 2019-06-04T19:55:44Z "The following link functions live in `wp-admin/includes/bookmark.php`: * `wp_insert_link()` * `wp_delete_link()` * `wp_update_link()` I would like to propose that these three functions be moved into `wp-includes/bookmark.php` so that they are available on any request, and not just requests inside `wp-admin`. It would also be necessary to move the `wp_set_link_cats()` so that it is available inside the `wp_insert_link()` function. Other similar functions live in `wp-includes` already, such as `wp_insert_post()`, `wp_insert_commet()`, etc. This change would allow links to work in the same way as those other content types." JPry 3 Needs Dev / Bug Wrangler Feedback 27122 Optimization for PHP FPM General 3.8 normal normal enhancement new dev-feedback 2014-02-13T22:59:21Z 2019-06-04T19:45:25Z "This patch make {{{ wp_ob_end_flush_all }}} calling {{{ fastcgi_finish_request }}} instead of {{{ ob_end_flush }}} when php-fpm is used. {{{ fastcgi_finish_request }}} flush the buffers '''and''' close the connection. This tweak increases page speed. It also allows to run heavy tasks such as sending mail, writing logs or making complex calculations after the end of the request without slowing down the whole page load. Symfony uses this tweak too, see this PR FOR further details: https://github.com/symfony/symfony/issues/1180" dunglas 13 Needs Dev / Bug Wrangler Feedback 33837 We should avoid Superglobals when possible wonderboymusic General normal normal enhancement assigned dev-feedback 2015-09-11T19:53:44Z 2019-06-04T19:51:22Z "We can probably add some helper functions that complete common tasks around Superglobal access Examples of accessing here: https://codeclimate.com/github/WordPress/WordPress/wp-admin/edit-comments.php Something like `wp_verify_action( $action )` could replace the many instances of things like: `isset( $_REQUEST['action'] ) && 'upload-attachment' == $_REQUEST['action']` Without having to architect something like `Symfony/HttpFoundation`, we can make accessing them more rare." wonderboymusic 24 Needs Dev / Bug Wrangler Feedback 27286 create menu page for custom post types General 3.8 normal normal enhancement new dev-feedback 2014-03-05T21:13:20Z 2019-06-04T19:45:30Z Currently, there are dedicated functions for adding new items to a top-level navigation item, such as `add_posts_page`, `add_media_page`, `add_links_page`, and so on. These all act as a wrapper for the `add_submenu_page`. However, there is no dedicated function for custom post types. I am proposing to add a new function called `add_post_type_page` that works in the same way. It's basically a copy of `add_posts_page` with an additional parameter for the registered CPT. norcross 3 Needs Dev / Bug Wrangler Feedback 60229 HTML API: Introduce HTML Templating HTML API trunk normal normal enhancement new dev-feedback 2024-01-11T03:41:51Z 2024-03-07T17:03:47Z "WordPress relies on developers remembering to perform proper escaping when building HTML strings. There's no mechanism to ensure that output HTML is safe. This patch introduces `WP_HTML_Template::render( $template, $args )` to do just that. {{{#!php ""> ""> HTML, array( 'url' => 'https://s.wp.com/i/atat.png?w=640&h=480&alt=""atat>atst""' ), ); }}} outputs {{{ https://s.wp.com/i/atat.png?w=640&h=480&alt="atat>atst" }}} This proposed templating syntax uses closing tags containing invalid tag names, so-called ""funky comments,"" as placeholders, because they are converted to HTML comments in the DOM and because there is near universal existing support for them in all browsers, and because the syntax cannot be nested. The `%` at the front indicates that the value for the placeholder should come from the args array with a key named according to what follows the `%`. This proposal does not yet consider nested HTML, or ""raw"" HTML. It currently escapes all content. It would be great if the templating engine can properly and safely handle HTML passed into it without risking unintentional exposure, but there must also be some way to communicate that a value inside is already escaped //and that its safety is maintained//. By relying on the HTML API, this templating only supports replacement of values //inside// HTML attributes or in plaintext (`#text`) nodes. It's not possible to inject HTML tags (unless nested support can be safely added), comments, or other HTML syntax." dmsnell 15 Needs Dev / Bug Wrangler Feedback 29619 Make WP_HTTP_BLOCK_EXTERNAL more easy to use HTTP API 2.8 normal normal enhancement new dev-feedback 2014-09-10T17:46:54Z 2019-06-04T19:46:22Z "Currently when defining WP_HTTP_BLOCK_EXTERNAL it blocks all requests which would mean that WordPress itself becomes unusable because it then will also blocks it own requests to WordPress.org. Also oEmbeds stop working because they can't get their data. My idea is to make an if statement like the localhost check to allow those requests. I do get that this constant is mainly for local development but would be great to have a easy way to have a semi locked down installation. So I'm curious what you guys think about this." markoheijnen 1 Needs Dev / Bug Wrangler Feedback 12477 Search with special characters and similar terms nbachiyski I18N normal normal feature request new dev-feedback 2010-03-02T17:42:46Z 2019-06-04T20:01:58Z "I did:Tried searching for terms Metis and Métis I saw:Those two searches turned up different sets of results. I expected:The same set of search results, or at least everything when I searched for Metis. Can search be smarter when special characters are involved?" mrroundhill 2 Needs Dev / Bug Wrangler Feedback 21913 Detecting MIME Types in WXR Files Import 3.4.2 normal normal enhancement new dev-feedback 2012-09-17T21:09:07Z 2019-06-04T20:03:48Z "In the process of creating a service to convert TypePad data to WXR formatted files, we've encountered some unique problems with TypePad data. Namely, many TypePad files are saved without file extensions, which prevents the existing importer from importing those files into the wp-content/uploads folder. In order to import and rename these otherwise ignored files, we've created a patch for the WordPress importer that does the following: 1. If there is an attachment in the WXR and the importer is not able to determine the file type from the file name (ie missing extension), the patched version will make a light (body-less) request to the web server where the file is hosted for information we can use about the file. The things we're interested in are file type, size, and filename. 2. If the importer is processing an attachment under the above situation, and it is able to determine the file type, then it will rewrite the local version of the file to have the appropriate file extension. This is a simple bit of code, but it makes a huge difference as TypePad saves without file extensions quite regularly. We've attached our patch and a sample WXR file from ragsgupta.com, the Brightcove co-founder's blog." ReadyMadeWeb 7 Needs Dev / Bug Wrangler Feedback 36179 Password protected post with force_ssl_admin() and domain mapping not working Login and Registration 4.3.1 normal normal defect (bug) new dev-feedback 2016-03-09T13:48:42Z 2019-06-04T20:23:26Z "Hi, I'm running a WordPress multisite with ""define(FORCE_SSL_ADMIN, true)"" and domain mapping. Our network site is using ssl (where users login to administrate their site). But a domain mapped site is not using ssl, which is working fine. So, I have a post that is password protected. When I'm on the mapped domain and submit the password protect form, I then get redirected to ""wp-login.php?action=postpass"" over https and get a security warning. It should not redirect me to https when I'm on a non-ssl mapped domain. Thanks" tcdeskwolf 6 Needs Dev / Bug Wrangler Feedback 16482 Visibility: password-protected breaks with redirected domains Login and Registration 3.0.4 normal normal defect (bug) new dev-feedback 2011-02-07T18:58:45Z 2019-06-04T20:02:37Z "Pre-requisite to reproduce: domain.com must redirect to www.domain.com (haven't tested with other subdomains than www, but I'm sure it would be the same). 1. password protect a page 2. visit domain.com/protected (which redirects to www.domain.com/protected) 3. enter password 4. something about the redirect OR the way the password is stored/checked is broken; you are redirected to the wp-admin (WordPress login) page. Sanity check: 1. password protect a page 2. visit www.domain.com/protected (requiring no subdomain redirect) 3. enter password 4. successful log-in " monkeyhouse 10 Needs Dev / Bug Wrangler Feedback 31166 wpmu_signup_user_notification filter is incorrect Login and Registration 3.0 normal normal defect (bug) new dev-feedback 2015-01-28T20:30:03Z 2019-06-04T20:10:50Z "Simple ticket here, The wpmu_signup_user_notification filter seems to be filtering the wrong option {{{ if ( ! apply_filters( 'wpmu_signup_user_notification', $user, $user_email, $key, $meta ) ) return false; }}} If I'm thinking correctly, the filter should be filtering a boolean. If two filters are added to this and the first returns false, there is no way for the second filter to recover the $user variable. This is how I see it working WP4.1, /wp-includes/ms-functions.php line 919 {{{ if ( ! apply_filters( 'wpmu_signup_user_notification', true, $user, $user_email, $key, $meta ) ) return false; }}}" johnrom 4 Needs Dev / Bug Wrangler Feedback 36317 Introduce a cookie prefix default constant Login and Registration normal normal enhancement new dev-feedback 2016-03-24T01:41:57Z 2019-06-04T20:23:42Z "Right now, all of WordPress's cookies are prefixed with the same `wordpress` namespace. A problem arises with `advanced-cache.php` caching solutions that load before `wp_cookie_constants()` is called, where the cookie prefix cannot be guessed. The current work around is to stab at each cookie individually: {{{ // Auth cookie if ( defined( 'AUTH_COOKIE' ) && ( $this->cookie === AUTH_COOKIE ) ) { return true; } // User cookie if ( defined( 'USER_COOKIE' ) && ( $this->cookie === USER_COOKIE ) ) { return true; } // Logged-in cookie if ( defined( 'LOGGED_IN_COOKIE' ) && ( $this->cookie === LOGGED_IN_COOKIE ) ) { return true; } }}} And to special case the test cookie, like: {{{ // Generic 'wordpress' cookies (that are not test cookies) if ( ( substr( $this->cookie, 0, 9 ) === 'wordpress' ) && ( $this->cookie !== 'wordpress_test_cookie' ) ) { return true; } }}} But without a known and trusted cookie prefix, it's still an unpredictable environment. ----- I'd like to re-propose an 8 year old issue (#6413) to introduce a new default constant to define a cookie prefix. This could turn the above snippet into something at least slightly more sane, like: {{{ // Generic 'wordpress' cookies (that are not test cookies) if ( defined( 'COOKIEPREFIX' ) ) { $len = strlen( COOKIEPREFIX ); if ( substr( $this->cookie, 0, $len ) === COOKIEPREFIX ) && ( false !== strpos( $this->cookie, 'test_cookie', $len ) ) { return true; } } }}} A `COOKIEPREFIX` constant would also allow plugins an easy way to drop themselves inside of WordPress's cookie namespace, which will help them play more nicely in environments where WordPress is not the only application within the domain." johnjamesjacoby Needs Dev / Bug Wrangler Feedback 24465 Introduce filter for user password on registration Login and Registration normal normal enhancement new dev-feedback 2013-05-30T17:12:35Z 2020-08-12T14:17:39Z We should introduce a filter within {{{register_new_user}}} on the auto-generated password to make it easier for plugins to handle setting custom passwords. jfarthing84 2 Needs Dev / Bug Wrangler Feedback 54298 Multisite: resetpassform always posts to the main-site wp-login.php file Login and Registration normal normal enhancement new dev-feedback 2021-10-20T14:50:00Z 2023-10-01T01:52:18Z The reset password form always posts to the main-site wp-login.php file. If the reset password form on a sub-site is being used then I'd expect the form to post to the sub-site wp-login.php file. henry.wright 3 Needs Dev / Bug Wrangler Feedback 20019 wpmu_validate_blog_signup(): Allow '.' and '-' in blog names Login and Registration 3.0 normal normal enhancement reopened dev-feedback 2012-02-10T23:04:29Z 2019-06-04T20:03:10Z "Canonical uses Wordpress 3.x multisite as part of voices.canonical.com, for employees who do not have or wish to list their personal blog. The code is stock, except for one patch we maintain, which allows blog names (currently in WP as lowercase alphanumeric only) to also include '.' and '-'. This matches our global username format. Attached is a patch extending wpmu_validate_blog_signup() to allow '.' and '-', with a tweak for the error text. We have been running the patch for awhile, and have not run across any problems with the rest of the code accepting this." fo0bar 21 Needs Dev / Bug Wrangler Feedback 23779 Can't insert large image if it's smaller than media setting but larger than theme setting Media 3.0 normal normal defect (bug) new dev-feedback 2013-03-15T00:47:08Z 2019-06-04T20:05:06Z "If you upload an image that is larger than $content_width but not larger than the ""large"" setting in settings->media, the option to insert a ""large"" image into the post isn't available even though the image is large enough. It looks like it must use $content_width as the actual width of the large image that's inserted, and the large_size_w setting to decide whether to show that option or not." aaroncampbell 12 Needs Dev / Bug Wrangler Feedback 31570 Infinite loop when filtering Media Library images by size in a modal (using wp_prepare_attachment_for_js) fuhton Media 4.1.1 normal normal defect (bug) assigned dev-feedback 2015-03-09T13:48:25Z 2019-06-04T20:11:46Z "In an attempt to restrict a post's Featured Image dimensions to imagers wider than 100px I implement the following code in `functions.php`: {{{ function restrict_media_library_by_width($response, $attachment, $meta) { if(isset($response['width']) && isset($response['height']) && $response['width'] > 100) { return $response; } return false; } add_filter('wp_prepare_attachment_for_js', 'restrict_media_library_by_width', 10, 3); }}} I then click ""Set featured image"" and the Media Library modal that appears only loads one empty thumbnail and my Network panel in Chrome Dev Tools reveals it makes continued, repeated, infinite AJAX requests. The only viable alternative I've found was to run a separate query within `ajax_query_attachments_args`, which is needed because the `_wp_attachment_metadata` key contains serialized data and that leaves no way to compare dimensions within a `meta_query`. Obviously running this additional query is inefficient and more resource intensive than it should be. More details here: http://wordpress.stackexchange.com/questions/180500/filter-media-library-items-by-size/." silb3r 4 Needs Dev / Bug Wrangler Feedback 23398 "Media Gallery - Clicking ""Restore Original Image"" in ""Scale Image"" pane loses 'Thumbnail Settings' pane." Media 3.4 normal normal defect (bug) new dev-feedback 2013-02-05T21:11:36Z 2019-06-04T20:04:54Z "Reproduce the problem thusly: Click ""Edit image"" in the ""Edit Media"" interface for any image. `/wp-admin/post.php?post=1119&action=edit` Scale the image a couple times in the 'Scale Image' pane. Update. Click ""Restore Original Image"" in the 'Scale Image' pane. Try to crop just the thumbnail. The 'Thumbnail Settings' Pane is '''''gone'''''. The image has to be deleted and re-uploaded to gain thumbnail control once again." gr33nman 4 Needs Dev / Bug Wrangler Feedback 47529 Media manager doesn't display cropped images Media 4.9 normal normal defect (bug) reopened dev-feedback 2019-06-12T09:19:59Z 2019-06-14T14:59:22Z "Media manager doesn't display cropped images We should change the display to list mode to view cropped images " dedidata 2 Needs Dev / Bug Wrangler Feedback 49601 layout width bugfix for img_caption_shortcode() Media 5.4 normal normal defect (bug) reopened dev-feedback 2020-03-08T19:00:36Z 2022-10-13T21:01:21Z "`img_caption_shortcode()` in `wp-includes/media.php` is hardcoding an inline `style=""width:""` attribute on the outer `
` or `
` element that contains the image and image caption, which it sets to the pixel width of the image. This is so the image caption is the same width as the image. The problem is that on mobile (narrow width) layouts this hardcoded figure/div element width will cause the entire container element to expand to this width, which makes the entire main content column overflow the window/viewport, so the page content overflows the screen and can't be read. Google search console also flags this issue. Here's what it looks like: Normally in CSS, themes have something simple like `img { max-width: 100%; }` to prevent images from overflowing the container element. But since WordPress is hardcoding the element width with an inline style, this takes precedence and clobbers whatever in in CSS. So it is not possible for a theme to fix this issue. The fix is simple, just use `max-width` instead of `width`. The caption text still stretches to whatever the width of the image is, but the element no longer overflows the page. Patch is attached but all it is doing is using `max-width instead of `width`." joelhardi 5 Needs Dev / Bug Wrangler Feedback 28997 Adding additional classes to image captions via UI Media normal normal enhancement new dev-feedback 2014-07-23T09:25:29Z 2019-06-04T20:08:39Z "This is a follow-up to #25295. In the ""Advanced Settings"" of an image, you can already set the classes of the image and the link, but not the caption. Although you can now add a class to the caption manually under the ""code"" tab, there is no UI in the ""Image Details/Advanced Options"" of the image that actually allow you to add the class as you would expect. The reason why I've escalated this to a feature request, rather than an arbitrary hack or plugin is this; for the end user, if you can add classes to the image and the link, you'd expect to be able to add classes for the caption, since this is a ""caption"" shortcode we're talking about here. Although issue #25295 does now permit classes in the shortcode, it does not add a user interface." jpswade 4 Needs Dev / Bug Wrangler Feedback 22075 Allow custom attributes to be set in `wp_get_attachment_link` Media 3.4 normal normal enhancement new needs-unit-tests 2012-10-02T04:29:05Z 2019-06-04T20:03:52Z "I answered a [http://wordpress.stackexchange.com/questions/65982 question] not so long ago on [http://wordpress.stackexchange.com/ WordPress StackExchange]. There I saw the need on a filter for `wp_get_attachment_link()` to allow the developer to add or remove attributes to the HTML without having to use a regex on it or creating the `a` tag again. So I've done this small patch with changes to apply this enhancement to the function." webord 5 Needs Dev / Bug Wrangler Feedback 28185 Expose image attachment title and/or filename in the image details modal Media 3.9 normal normal enhancement new dev-feedback 2014-05-08T23:46:33Z 2019-06-04T20:07:41Z "I ran into a case where I had a post with an image I wanted to set as the featured thumbnail. My Media library is very large and I didn't know the file name so I clicked the edit icon on the image to view the Image Details. Nowhere within the image details does it show either the image title, or file name. My suggestion would be to place it next to the words ""Image Details"", but i'm not married to the idea. The search field in the media library looks for these attributes to filter the library list, it would be convenient if it were clearly labelled within the ""Image Details"" modal. Additionally, once you do find the image in the media library, both the file name and image title are clearly visible. I created an annotated video to clearly explain the issue: https://www.youtube.com/watch?v=lS55abTV7qc" drrobotnik 13 Needs Dev / Bug Wrangler Feedback 21221 Image title and alt attribute content should be texturized. Media 3.4.1 normal normal enhancement new dev-feedback 2012-07-11T19:49:18Z 2019-06-04T20:03:28Z " gallery_shortcode() texturizes the caption shown underneath images in galleries. For consistency, alt and title tags content should also be texturized. This is also valuable for developers extending the gallery shortcode or output, such as with the WordPress.com (and Jetpack) [http://en.blog.wordpress.com/2011/11/08/new-photo-carousel/ Gallery Carousel feature], as it provides i18n'd texturization, for EG. See attached patch, which: * uses wptexturize() in wp_get_attachment_image() directly (/wp-includes/media.php), which makes it work with gallries, attachment pages, etc. * also uses wptexturize() in get_image_tag() (/wp-includes/media.php), for consistency. * uses wptexturize() in wp_get_attachment_link() (/wp-includespost-template.php), for consistency" stephdau 16 Needs Dev / Bug Wrangler Feedback 16165 Media Library Bulk Delete: Error in deleting... nacin Media 3.1 normal normal enhancement assigned dev-feedback 2011-01-09T14:20:39Z 2019-06-04T20:02:28Z "While Bulk Deletion, when a user gets the ""Error in deleting..."" message, there is no information given of how many elements have been deleted so far. Let's say there was a bulk of N deletions, getting this error can mean up to N-1 items have been deleted already. Same is the case if for some item, no permissions are granted to delete it. The number of successfully deleted items is missing as well." hakre 9 Needs Dev / Bug Wrangler Feedback 24380 Missing Compression Parameter in WP_Image_Editor_GD wonderboymusic Media 3.5.1 normal normal enhancement reopened dev-feedback 2013-05-21T02:37:06Z 2019-10-05T10:24:33Z "Setting the image quality parameter has no effect on png files. Going through the wp-includes/class-wp-image-editor-gd.php I noticed that the compression parameter for the imagepng function call is missing. the current quality parameter only affects jpeg files. for jpeg, quality goes from 0->100 from bad to good for png, from 0->9 from good to bad. in the elseif block starting at line 337 i have added a variable called compression and changed the code as follow: {{{ elseif ( 'image/png' == $mime_type ) { // convert from full colors to index colors, like original PNG. if ( function_exists('imageistruecolor') && ! imageistruecolor( $image ) ) imagetruecolortopalette( $image, false, imagecolorstotal( $image ) ); $compression = -((9/100*$this->quality)-9); if ( ! $this->make_image( $filename, 'imagepng', array( $image, $filename, $compression ) ) ) return new WP_Error( 'image_save_error', __('Image Editor Save Failed') ); } }}} This convert the scale 0->100 into a 0->9 scale that matches the parameters from imaging. This gives back control to the user on image quality for png files..." MuViMoTV 39 Needs Dev / Bug Wrangler Feedback 23205 New Media Uploader slow for sites with many images Media 3.5 normal normal enhancement new dev-feedback 2013-01-15T17:17:02Z 2019-06-04T20:04:40Z "The new media uploader added in 3.5 looks very nice. Unfortunately, its functionality is worse for sites with thousands of images. I think this can be combated by allowing us to select the ""Upload Files"" page as our default after clicking ""Add Media,"" and rather than ""All Media Items"" be the page it jumps to after the image is uploaded, instead have it jump to ""Uploaded to this Post."" Is there any way the WordPress team can make this default? Or add the option to make it default? It's made posting on my site 10 times more annoying, especially for those posts with 40-50 images. And I'm sure there are others who feel the same." salromano 28 Needs Dev / Bug Wrangler Feedback 31419 Vimeo and YouTube video cannot be inserted into a playlist Media normal normal enhancement new dev-feedback 2015-02-23T09:22:58Z 2019-06-04T20:11:41Z "Now that the video playlist feature is working well in core, it could be great to think about supporting Vimeo and YouTube videos inside playlist. For the record, YouTube videos can be played with the MediaElementJS player with this shortcode : {{{ [video src=""http://youtu.be/_YbVJoMYwJ0""] }}} I would like to introduce the possibility to play this video inside a playlist: {{{ [playlist type=""video"" srcs=""http://youtu.be/_YbVJoMYwJ0,http://youtu.be/Fn1iMmSvvhQ""] }}} Now, there are some challenges : 1. Playlist are managed by selecting attachment form the Media library, along with their meta data (title, poster, ...). How to provide meta data for external videos ? 2. MediaElementJS does not build the player in the same way when a YouTube video is embeded, so switching between videos does not rely on the same API, and switching between YouTube and mp4 videos is not possible The first concern could be addressed by registering an attachment post in the database that links to a YouTube URL instead of a video located in the uploads folder." Fab1en 2 Needs Dev / Bug Wrangler Feedback 17857 WP_Embed - Split shortcode() function into two for increased flexibility Media 2.9 normal normal enhancement new dev-feedback 2011-06-21T01:52:41Z 2019-06-04T20:02:44Z "Currently, the WP_Embed class is restricted to posts; it takes a post ID as a parameter and checks the post meta table. What I'd like to propose is to apply a filter to the post ID and split WP_Embed::shortcode() into two functions (at http://core.trac.wordpress.org/browser/trunk/wp-includes/media.php#L1177). In a nutshell, let the link parsing be one function and if the link is oEmbed-worthy send it to the second function for parsing. The second function could then be easily extended for usage in 3rd-party plugins not using WP posts (like BuddyPress). Also, the patch checks the URL against each registered WP oEmbed provider's URL scheme if oEmbed discovery is false. This is designed to prevent unnecessary external pinging of an oEmbed provider and avertible meta caching for failed attempts. Andy Peatling primarily wrote this part of the code, which he sent to me awhile ago. Attached patch is against r18324." r-a-y 1 Needs Dev / Bug Wrangler Feedback 23424 WP_Image class for handling images from the media library Media 3.5 normal normal enhancement new dev-feedback 2013-02-08T15:41:24Z 2019-06-04T20:04:57Z "Since 3.5 we have the class WP_Image_Editor. This needs a file path to be able to manipulate an image. Currently you would have to use something like wp_get_image_editor( _load_image_to_edit_path( $post_id ) ). What is wrong since you are using a ""private"" function. Currently I'm working on this idea and you can find the code here https://github.com/markoheijnen/WP_Image/blob/master/wp-image.php. What it does now is getting the filepath, be able to get the image editor, add an image size on the fly and getting/updating the metadata. We really miss something like a WP_Image class in WordPress. However I'm not sure what kind of functionality is needed for it. I like the current class mainly because it gives you the power to create an image size for a specific media image and stores it in the sizes array. When a user removes the media image then also the custom sizes will be removed." markoheijnen 6 Needs Dev / Bug Wrangler Feedback 10390 attachments should store the WP uploads path that was configured when they were uploaded Media 2.8.1 normal normal enhancement reopened dev-feedback 2009-07-12T10:34:51Z 2019-06-04T20:01:48Z "When you upload an image, currently, the uploads path (defaults to wp-content/uploads) is not stored. If you change this later on to something else, previously inserted galleries no longer work, among multitudes of other problems." Denis-de-Bernardy 13 Needs Dev / Bug Wrangler Feedback 11895 Allow more specific image size editing Media normal normal feature request new dev-feedback 2010-01-14T15:12:28Z 2019-06-04T20:01:54Z "Instead of allowing only some combinations of 'thumbnail', 'medium', 'large', 'full' I would like to have the ability to select which of these I would like to crop. So for example, only 'thumbnail' and 'medium'. With the current trunk this is not possible. I created a patch that adds this ability by changing the radio boxes of ""apply changes to"" in the image-edit page to checkboxes for each of the 4 possible sizes." frankgroeneveld 18 Needs Dev / Bug Wrangler Feedback 28908 Adding a menu custom link during autocompletion does not add the full text in firefox Menus 3.0 normal normal defect (bug) new dev-feedback 2014-07-15T09:59:51Z 2019-06-04T20:08:33Z "Tested on Firefox 30.0 In Appearance => Menus, creating a menu and adding custom links does not save the full link text under the condition that you have selected an auto complete value and hit the enter key. Presumably, the auto complete value should be inserted, then the field should be saved with that value. Entering: [[Image(http://s.nessworthy.me/2014071509500201.png)]] Submitting/Saving (via enter key): [[Image(http://s.nessworthy.me/20140715095111549.png)]] Result: [[Image(http://s.nessworthy.me/20140715095033870.png)]] This applies to both the link URL and the link name. Didn't add the link URL screenshots to save screen space." Nessworthy 3 Needs Dev / Bug Wrangler Feedback 12945 Constrain wp_page_menu() technosailor* Menus normal normal defect (bug) accepted dev-feedback 2010-04-09T19:39:51Z 2019-06-04T20:02:04Z "The wp_page_menu() function is the default callback for wp_nav_menu(). IOW, when a user is not using the new menu system, it defaults to this function. While that is good, any number of pages over, say 10, will make a theme puke in many cases. As a workaround, I suggest we make a default of wp_page_menu() to exclude all pages() except home. It's a stupid idea, I think, but something needs to be done to make this manageable so I'm looking for feedback. The Pro of taking this approach is that it encourages customization of menus via the WP menu system. It also does not lock theme devs into a particular approach because this stuff can be overidden via arguments and filters. The con is that the default callback becomes pretty benign and useless. Almost pointless. Ideas?" technosailor 5 Needs Dev / Bug Wrangler Feedback 34657 WordPress doesn't set object terms for menu items so pending items not working Menus 4.3.1 normal normal defect (bug) new dev-feedback 2015-11-11T11:23:11Z 2019-06-04T20:17:50Z " When I create menu items and refresh admin page without saving menu, wordpress can not show pending menu items. At line 1127 of 'wp-admin/includes/ajax-functions.php' file there is wp_save_nav_menu_items function, the first argument for this function '''is always zero''', so At line 441 of 'wp-includes/nav-menu.php' file wp_set_object_terms function doesn't work. I add my menu id to {{{ $item_ids = wp_save_nav_menu_items( 97, $menu_items_data ); }}} function, and it working for me. :)" rss_samuel 3 Needs Dev / Bug Wrangler Feedback 24548 _wp_menu_item_classes_by_context assumes $queried_object->ancestors is an array Menus normal normal defect (bug) new dev-feedback 2013-06-09T19:08:16Z 2019-06-04T20:05:40Z "Recently, on a site using [http://wordpress.org/plugins/cpt-onomies/ CPT-onomies], I ran into an interesting error with _wp_menu_item_classes_by_context(). In this function, when setting the parent class, there is a large if statement that assumes that `$queried_object->ancestors` and `$possible_taxonomy_ancestors[ $parent_item->object ]` are arrays." wpsmith 4 Needs Dev / Bug Wrangler Feedback 20289 wp_nav_menu container is not set when menu isn't defined Menus 3.3 normal normal defect (bug) new dev-feedback 2012-03-23T10:27:03Z 2019-06-04T20:03:19Z "When you use wp_nav_menu in your theme, but the actual menu isn't set via the backend menu interface, the container provided in the args is ignored and falls back to 'div'. Attached diff always uses container provided in args, if 'div' or 'nav' is provided. If no container arg is provided, falls back to using 'div'. {{{ wp_nav_menu( array( 'theme_location' => 'main_menu', 'container' => 'nav', 'menu_class' => 'main-menu-navigation', ) ); }}} To test this: Use this function in your theme, without assigning a menu to this theme_location." dannydehaan 2 Needs Dev / Bug Wrangler Feedback 20275 wp_update_nav_menu hook is not fired when nav menu item is auto-added Menus normal normal defect (bug) new dev-feedback 2012-03-21T19:30:59Z 2019-06-04T20:03:18Z "WP calls the action hook 'wp_update_nav_menu' when a navigation menu is updated. For example, go to Site Design -> Custom Menus -> Click the ""Save Menu"" button on a menu. Next to the Menu title, the Custom Menus provide the user to ""Automatically add new top-level pages"". When this option is checked, and a new top-level page is created, the 'wp_update_nav_menu' hook is not fired. So the attached nav-menu-hooks.diff patch fixes that. I would also suggest that we do not use the same hook 'wp_update_nav_menu' twice (as it is currently being done) with different amount of arguments, because this causes a PHP Warning {{{ PHP Warning: Missing argument 2 for x_save_footer() in /var/www/branches/x.trunk/wp-content/themes/x/functions.php on line 815, referer: http://x.com/x/wp-admin/nav-menus.php }}} for code: {{{ add_action('wp_update_nav_menu', 'x_save_footer', 10, 2); }}} So, the hook call at nav-menu.php:255 has 2 parameters and the call at nav-menus.php:383 has 1 parameter. As a fix, the action hook in nav-menu.php should be named something else, like 'wp_update_nav_menu_object' (because it is updating the object), as done in the attached nav-menu-hooks.diff patch. This will also prevent the same hook from being fired twice when updating the nav menus." inderpreet99 3 Needs Dev / Bug Wrangler Feedback 18816 Add 'offset' parameter and 'ancestral' boolean to wp_nav_menu Menus normal normal enhancement new dev-feedback 2011-09-29T16:13:42Z 2019-06-04T20:02:57Z Since we can now call wp_nav_menu multiple times and there is the very useful 'depth' parameter, I believe adding an 'offset' parameter would be very beneficial in many situations. This would allow you to start at the children of the main pages for example and combined with depth it becomes very powerful. An 'ancestral' => 'true' option could output only menu items that the current page is a descendant of. Currently if you want to display a main menu in the header and then a submenu on page.php you either need a tricky custom walker or terrible CSS 'visibility:hidden' or 'display:none' situations. signyourbikeout 3 Needs Dev / Bug Wrangler Feedback 21070 Added a filter to the sub-menu class attribute Menus 3.4 normal normal enhancement reopened dev-feedback 2012-06-25T12:47:34Z 2019-06-04T20:03:26Z "The sub-menus are hard coded with ""sub-menu"" as the only CSS class. This may cause bad performing CSS with maintainability issues, like when you're targeting the third level sub menu. I've added a filter, so CSS classes like ""sub-menu-level-$depth"" can be added." bjornjohansen 4 Needs Dev / Bug Wrangler Feedback 14969 "menu element ""all (direct) child pages""" Menus 3.0.1 normal normal feature request new dev-feedback 2010-09-26T20:16:39Z 2019-06-04T20:02:19Z One of the things I am missing in the current menu-system is the ability to assign parts of the page tree to, say, a sub-menu, so, say, all child pages of a parent will be listed instead of having to add them manually to the submenu once the menu has been created. youngmicroserf 1 Needs Dev / Bug Wrangler Feedback 28530 WPMU Creating new user does not use welcome notification template Networks and Sites normal normal defect (bug) reopened dev-feedback 2014-06-13T16:36:27Z 2019-06-04T20:08:14Z "In a multisite setting adding a new user to the network should send a welcome notification to the user with a template defined in '''Settings > 'Welcome User Email''''. But the template is not used. When creating a new user via {{{/network/user-new.php}}} the method {{{wp_new_user_notification}}} gets called. Instead {{{wpmu_welcome_user_notification}}} should get called." jokr 11 Needs Dev / Bug Wrangler Feedback 35912 Allow changing network URL scheme Networks and Sites normal normal enhancement new dev-feedback 2016-02-23T02:37:42Z 2019-06-04T20:55:37Z "Right now, it's not possible to convert a network from HTTP to HTTPS. The normal way to enforce HTTPS on a site is to change the URLs for the site, but with multisite, this has to be done via the Network Admin. However, the URL isn't editable at all for the main site on the network, so it's not possible to edit it. Attached patch allows setting only the scheme for the main site. However, this does have a big question attached: should updating the scheme for the network update it across all sites? If so, should it only update from HTTP -> HTTPS, or vice versa as well?" rmccue 8 Needs Dev / Bug Wrangler Feedback 14172 Implement $scheme in site info in ms-sites edit site Networks and Sites 3.0 normal normal enhancement assigned dev-feedback 2010-07-01T22:45:33Z 2021-01-05T16:40:51Z "In WordPress 3.0 with Network enabled, if you were to click: Super Admin -> Sites -> Edit (next to any site) and then change any of the Site Options i.e. wp_2_options the changes don't save. We're running a secure environment and need Siteurl to be HTTPS instead of HTTP. Changing all the parameters to https and clicking Update doesn't save the changes." firmdot 24 Needs Dev / Bug Wrangler Feedback 33967 MS Sites: content of the users column should be by choice, number is not too informative Networks and Sites 4.3 normal normal enhancement assigned dev-feedback 2015-09-22T13:43:11Z 2019-06-04T20:51:42Z "I sadly noticed, that on network admin -> sites, the users column only shows numbers now. It looks nicer with the less data, but on the other hand we used that information. I ask, it is possible to make it choosable, or at least, list the users in the excerpt listing mode? Why I ask this: We have a multisite install with many blogs and open registration. Because of that we sometimes have spam blogs. We frequently delete those spam blogs with its user(s), but now it's more complicated, because we don't see the email (user) at first. We have to open it on a new window (by clicking on the number of users). That slows down the process. And in some cases, just from the registered user (email) we saw if it was a spam blog or not." katazina 26 Needs Dev / Bug Wrangler Feedback 27224 Multisite upload settings are inconsistent jeremyfelt* Networks and Sites normal normal enhancement accepted dev-feedback 2014-02-27T19:22:04Z 2023-07-02T11:16:33Z """Site upload space"" is indicated in MB whilst ""Max upload file size"" is indicated in KB. It would be useful to standardize on MB." danielbachhuber 8 Needs Dev / Bug Wrangler Feedback 34293 Network Admin Email description doesn't really explain what it is. Networks and Sites normal normal enhancement new dev-feedback 2015-10-13T21:18:49Z 2019-06-04T20:52:18Z "On /wp-admin/network/settings.php the field for **Network Admin Email** has this as the description: > This email address will receive notifications. Registration and support emails will also come from this address. By contrast, the per-site has this: > This address is used for admin purposes, like new user notification. I propose we change the Network Admin one to this: > This address is used for admin purposes, like site notifications. Registration and support emails will be sent from this address. That makes for a little more parity, and explains more clearly that emails are sent FROM this address (which has been unclear to some). The attached patch comes in two versions. 1) As I originally proposed 2) Without the 'and support' phrase since I have no idea what we are referring to with that one." Ipstenu 19 Needs Dev / Bug Wrangler Feedback 30233 Replace or rewrite domain_exists() for more accurate usage Networks and Sites 3.0 normal normal enhancement new dev-feedback 2014-11-02T01:47:25Z 2019-06-04T20:09:42Z "`domain_exists()` was added in [https://mu.trac.wordpress.org/changeset/543 MU:543] in almost its current form. The enforcement of trailing slashes on paths was added in #20589 and a filter was added in #21442. A few notes: * The lookup for a domain and path combination is restricted to one network. This allows the same domain and path combination to be used on multiple networks, which should not be default behavior. * The name, `domain_exists()`, implies a check for domain. It is really checking for a full site URL. * While it is entirely possible to ignore the result by providing your own in the filter, it would be nice to not always require this for multi-network configurations. My **guess** is that the original intent was to ensure a subdomain or path was not present when creating a site on an open network. In thinking of how to address this, these two possibilities came to mind. * Deprecate `domain_exists()` and wrap a new function that does a larger check. `wp_get_site()` could work alongside `wp_get_sites()` and support domain/path lookup. * Allow the current `$site_id` argument to be `null` (for all), or an array (for many), in addition to the current `int` expectation. " jeremyfelt 5 Needs Dev / Bug Wrangler Feedback 20853 get_post_custom show directly serialized data from the post_meta arrays. Options, Meta APIs 1.5 normal normal defect (bug) assigned dev-feedback 2012-06-06T05:39:23Z 2019-06-04T20:43:13Z "get_post_custom show directly serialized data from the post_meta arrays. For example: If I save a data with: {{{ update_post_meta( $post_id, 'camp', array( 'some' => $var, 'thing' => $var_2 ) ); }}} When I use get_post_meta(); : {{{ $var_get = get_post_meta($post_id, 'camp', true); echo $var_get['some']; // Fine.. Print: $var content. }}} but, when I use get_post_custom() : {{{ $var = get_post_custom($post_id); echo $var['some']; Metod, (Not work because ""Returns a multidimensional array"" with all values, and 0 is the first or the unique value). echo $var['some'][0]; /* Metod, >:( , Not work. Print: a:2:{i:some;s:4:""this"";i:thing;s:7:""content"";} */ }}} Instead of display ""array"", and can not handle sub arrays." shadowhck 7 Needs Dev / Bug Wrangler Feedback 32202 Add support for options page locking (settings API concurrency) Options, Meta APIs 3.6 normal normal enhancement new dev-feedback 2015-04-30T01:18:48Z 2021-08-26T21:18:12Z "If two users access an options page at the same time, the user who saves last will have their settings stick, while the user who saves first will have their settings lost. This is because options pages lack any access concurrency checking. In #31436 we propose to handle conflicts in concurrent Customizer sessions by adding locking to individual controls so that users can't override each others' values. The same functionality is needed for options pages generated generated via the Settings API. At the most basic level, locking could be implemented to block a user from accessing an options page if someone else is already there, presenting the user with the same takeover screen as shown for post locking. A more sophisticated approach would be to allow multiple users to edit an options page at once, either by syncing values across the sessions via Heartbeat, or by disabling a field entirely for other users when one user starts editing it. In this way, the disabled field would not be included when the other users submit the form. This may not work in all cases, however. Another approach, less sophisticated and not using Heartbeat at all, would be to introduce a persistent counter for saves to a given admin page. This would serve as a revision number, and the revision could be included with each settings form. If the submitted form has a setting number that is not the same as what is currently stored, then this would indicate there is a potential conflict and the user could be presented with a screen to resolve any differences." westonruter 11 Needs Dev / Bug Wrangler Feedback 26895 Deprecate recently_edited option Options, Meta APIs 3.8 normal minor enhancement new dev-feedback 2014-01-21T08:33:53Z 2019-06-04T20:45:22Z "recently_edited option is being set when a plugin or a theme file is edited by the builtin Editor. A search, in the WordPress 3.8 source code, tells me that the option is never being read. I suggest that we deprecate that option and replace it by an action where plugins can hook and get the value of the edited file." yani.iliev 4 Needs Dev / Bug Wrangler Feedback 36655 Enhancement: Add datetime column to options table. Options, Meta APIs normal normal enhancement new needs-unit-tests 2016-04-24T15:04:51Z 2019-06-04T20:57:35Z "== Proposal == The options table in WordPress is a great key/value storage option for a wide variety of different data used by core and plugins. One improvement that would increase its utility for faster time based queries on data stored there is to add a DATETIME column. == Some examples where this benefit could be realized: == === Example 1: Transient storage. === Currently, when there is no object-cache in use, transients are stored to the wp_options table. However, for each transient there are two records. One for the actual key/value pair and then one for any timestamp set as the transient expiry. Having a datetime column would allow the transient to always only consist of one record and thus make any queries interacting with transients much simpler. === Example 2: Arbitrary plugin data using the options table for its own scheduled tasks. === A lot of plugins are using the transient system wrong because it's not intended for indicating minimum age. Having a datetime column would provide the database schema in WordPress core that allows for plugins to implement their own ""minimum/maximum age"" apis. === Example 3: Tracking creation/modification times. === Having a datetime column would allow for indicating when a key/value pair was created and/or modified which could be useful for plugins that have need to do so. === Example 4: Scheduled settings/options. === Having a datetime column could allow for scheduled changes with a sites configuration and thus more advanced previews/site preparation, (think adding scheduled changes to site title, or site description via the customizer). Having a datetime column makes such schedules simpler to implement. == Implementation == === Schema === {{{ option_date datetime NOT NULL default '0000-00-00 00:00:00' }}} === Iterations: === 1. Add the column and modify options api to expose the new column to queries (get_option, update_option, site option functions etc). 2. Convert transient API to implement new option_date column for setting expiries when object-cache is not in use. == Who and When == I'd be willing to spearhead putting some patches together and getting the initial code going but before I invest some time in this I'm just testing the waters to see if this is even something that would be considered/welcomed for core. I'm not aware of any potential conflicts this may pose with the purpose for the option table but if there are any I'm sure I'll find out! I definitely don't see this as going in 4.6 but it might have potential for 4.7 if work begins fairly soon. " nerrad 1 Needs Dev / Bug Wrangler Feedback 14125 Seperate out non-editable options in edit site sorich87* Options, Meta APIs normal normal enhancement accepted dev-feedback 2010-06-28T04:11:36Z 2019-06-04T20:41:23Z "In the edit site screen, blog options which are arrays are shown as SERIALIZED and the textbox is disabled. The attached patch pulls those options out of the options metabox and displays the option name in another metabox below. Related: #14120" wpmuguru 7 Needs Dev / Bug Wrangler Feedback 19686 404 - File or directory not found Permalinks 3.3 low normal defect (bug) new dev-feedback 2011-12-29T19:47:45Z 2019-06-04T21:03:41Z "We are running Wordpress using multiuser with Buddypress. Users are getting the 404 error after they click the save button in their settings. I'm opening this ticket to report the source of the problem. Wordpress 3.x Buddypress 1.5 Windows 2008 R2 (IIS 7.5) Themes installed are all Buddypress compatible and all themes seem to be affected. All option pages are affected. Settings are updated when the user returns to the page - despite the error. A screen shot of the error can be seen at http://blogs.cnc.bc.ca/gagel/?attachment_id=38 The source of the problem appears to be in the wp_get_referer() function on line 164 in options.php. With the variables passed to the function it should redirect the user to the page they just submitted when they updated options. Instead they get the 404 error. The page they're redirected to appears to be the absolute path of the submitted page appended to the absolute path again (minus the domain). So it looks like this: userblog/wp-admin/userblog/wp-admin/options-general.php?settings-updated=true When I switch out the wp_get_referrer() function with the variable $parent_page then the redirect worked as expected. I'm uncertain about leaving it like this as my change may have introduced issues elsewhere... This issue is discussed at http://wordpress.org/support/topic/recuring-404-file-or-directory-not-found-error?replies=8#post-2527566" kwgagel 9 Needs Dev / Bug Wrangler Feedback 17170 Attachment slugs are not unique Permalinks 2.8 normal major defect (bug) new dev-feedback 2011-04-18T21:02:52Z 2019-06-04T20:41:59Z "From wp_unique_post_slug() and #9726: {{{ Attachment slugs must be unique across all types. }}} It's true that attachment slugs are checked for uniqueness against all other object types, however, when inserting an object of another type any uniqueness checks do not include attachments. This means that #9539 isn't actually fixed if you attempt the steps in the order described (insert attachment first followed by conflicting page). Fix would be to add 'attachment' to the `post_type IN` clause for hierarchical types. See attachments-hierarchically-unique.diff. Still puzzling out why/if attachments need to be unique against non-hierarchical types since there shouldn't be collisions as attachment URLs are subpage style. However, if attachment slugs do need to be globally unique then see attachments-globally-unique.diff (not tested so much). Related: #9726, #9539, #6437, [11467]" duck_ 1 Needs Dev / Bug Wrangler Feedback 28156 In date-containing permalink structures, /dddd/dd/comment-page-d/ urls don't work Permalinks 3.9 normal normal defect (bug) new needs-unit-tests 2014-05-06T22:42:17Z 2019-06-04T20:46:56Z "I was in the process of writing a plugin to allow people to test their rewrite rules as they develop a site, and when I setup examples of core rewrite rules, one of them was failing. If you set your permalink structure to one containing dates, e.g. ""Day and Name"", one of the generated rewrite rules for posts is: {{{ '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)(/[0-9]+)?/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]' }}} And later on, another rule is: {{{ '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&cpage=$matches[4]' }}} The URI /2014/5/6/comment-page-2/ would end up matching the earlier rule, looking for a post named ""comment-page-2"" published on 2014-05-06, instead of looking for comment page 2 in the... I actually don't even know what the comment-page URLs do. For me, the ones that work just redirect to the date archive. I'm happy to patch this, but would like to hear from someone else on what exactly should be done done. Do the comment-page-n rules do anything? Can they just be removed?" mboynes 2 Needs Dev / Bug Wrangler Feedback 35209 Permalinks of published pages get changed when creating new pages as a draft Permalinks 4.4 normal normal defect (bug) new dev-feedback 2015-12-23T13:14:39Z 2019-06-04T20:53:45Z "While looking over ticket #35197 I found some other strange behavior where a permalink of a published page will be overwritten by a newly created draft page. Here are the steps to reproduce it (''4.4''/''trunk''): '''Step 1''' Add a new page with the title ''""Test 1""''. When switching to the editor, a permalink is generated: ''http://your-site.com/test-1/'' '''Step 2''' Click the ''Edit'' button next to the generated permalink, change the permalink from ''""test-1""'' to ''""test""'', click ''OK'' and click the ''Publish'' button to publish the newly created page. '''Step 3''' Add a new page with the title ''""Test 2""''. When switching to the editor, a permalink is generated: ''http://your-site.com/test-2/'' '''Step 4''' Click the ''Edit'' button next to the generated permalink, change the permalink from ''""test-2""'' to ''""test""'' and click ''OK''. The permalink gets changed back to ''test-2'' correctly because the already published ''Test 1'' page is using ''test'' as a permalink. '''Step 5''' Click the ''Save Draft'' button to save the ''Test 2'' page as a draft. Do '''NOT''' publish it! '''Step 6''' Switch to the ''""All pages""'' area and open the ''Test 1'' edit page. '''Step 7''' SURPRISE! The permalink of the already published page ''Test 1'' changed from ''""test""'' to ''""test-2""''. Curiously when you hover the permalink it still uses the correct ''""test""'' permalink. [[Image(http://fs5.directupload.net/images/151223/r6gqvcph.png)]] '''Step 8''' Okay, now lets change something at the site. Add some text for example and click the ''Update'' button. After ''Step 8'' the permalink of the ''Test 1'' page gets changed to ''""test-2""'' while the ''Test 2'' page is using the ''""test""'' permalink now. There should be a patch for this because permalinks of already published pages can easily get changed when you are not aware of this problem. The main issue is that in this case all incoming links from third-party websites will not link to the correct page anymore." Asgaros 2 Needs Dev / Bug Wrangler Feedback 34822 Post name permalinks problems Permalinks 4.3.1 normal normal defect (bug) new dev-feedback 2015-12-01T16:41:16Z 2019-06-04T20:53:19Z " When using the ""post name"" permalink options and creating/deleting duplicates it can happen that the links get confused and the correct permalink doesn't work anymore. (page not found) The workaround shows a little more of this strange behaviour. If you change the link of the old page to blog/pagename-2, create a new one (with changing the link to the correct/old one if necessary), and delete the old one, the permalink blog/postname works, but redirects to blog/pagename-2. Something gets mixed up there... --- To add another workaround that we've tried to fix it: If one changes the permalink setting to standard, the post show up as normal, but when changing the settings back (to ""article name""), the problem persists/reappears. The permalinks do not seem to be freshly generated but rather to somehow half-and-half rely on old and new setting, very weird. " stevenbauers Needs Dev / Bug Wrangler Feedback 35635 Redirect loop for custom post types in WP 4.4 Permalinks 4.4.1 normal critical defect (bug) new dev-feedback 2016-01-27T19:46:48Z 2019-06-04T20:54:50Z "I have a client site hosted on WPE that was on 4.3.1 and when I updated to 4.4.1. it now has a redirect loop error (ERR_TOO_MANY_REDIRECTS) when trying to access a single post page (for a custom post type) from a category page. What it is doing is trying to redirect without the category in the the URL and then tries to redirect with the category, and loops; [[br]] /%category%/%postname%/ => /%postname%/ => /%category%/%postname%/ => etc. On my category page a have a list of posts with links with the markup {{{"" class=""custom"">...}}} and my permalinks setup is ""Post name"" or ({{{/%postname%/}}}). I don't know the code causing this so I don't have much info, but with the assistance of WPE support we confirmed this is due to the WP 4.4.1 update by cloning versions and updating WP and reverting, etc. Here is [https://wordpress.org/support/topic/this-webpage-has-a-redirect-loop-43/ another instance I found] as well, but they claim to have reinstalled 4.4 and it fixed it. I tried this several times with no luck. Note: This is my first time submitting a defect/ticket, so please let me know if I need to add any other info." standuncan 2 Needs Dev / Bug Wrangler Feedback 32705 `includes_url` shouldn't use `site_url()` on the frontend Permalinks normal normal defect (bug) new dev-feedback 2015-06-18T15:18:09Z 2019-06-04T20:50:36Z "Multisite / Domain Mapping 1. `site_url()` is your admin, `home_url()` is your frontend 1. The site url is blocked behind a firewall 1. You call `includes_url()` for a script on the frontend: your script is blocked, because it loads your admin domain on the frontend I noticed this because we are trying to upgrade the NYT to 4.2.* and emoji scripts are showing up everywhere. I can remove the action for now." wonderboymusic 2 Needs Dev / Bug Wrangler Feedback 36323 home_url returns url with wrong scheme Permalinks 4.4.2 normal normal defect (bug) new dev-feedback 2016-03-25T02:40:21Z 2019-06-04T20:56:21Z "Hello, I have a multisite with HTTPS on all subsites. When using {{{ home_url( '/' ); }}} , on a subsite page, logged in user got a https url, when anonymous got just http. In the track, it seems that the error comes from those lines... {{{#!php 2963 if ( ! in_array( $scheme, array( 'http', 'https', 'relative' ) ) ) { 2964 if ( is_ssl() && ! is_admin() && 'wp-login.php' !== $pagenow ) 2965 $scheme = 'https'; 2966 else 2967 $scheme = parse_url( $url, PHP_URL_SCHEME ); 2968 } }}} ... Thank you for your time." Gerkin 3 Needs Dev / Bug Wrangler Feedback 17183 previous_comments_link and next_comments_link return wrong url with PATHINFO permalinks Permalinks 1.5 normal normal defect (bug) new needs-unit-tests 2011-04-19T20:13:15Z 2019-06-04T20:42:01Z "When using PATHINFO permalinks, previous_comments_link() and next_comments_link() return a wrong link, which renders paged comments useless. Steps to reproduce: Set permalinks to: /index.php/%post_id%/%postname%/ The functions return URLs similar to: /comments-page-1/#comments This URL results in a file not found (if no rewrite rules are available, which should not be necessary if the PATHINFO permalink structure is used). Expected URL: /index.php/comments-page-1/#comments Manual opening the URL results in the expected/correct paged comments page." FireMotion 8 Needs Dev / Bug Wrangler Feedback 34555 superscript in url Permalinks normal normal defect (bug) new dev-feedback 2015-11-02T10:39:17Z 2019-06-04T20:53:06Z "If you have a superscript in the post title and selected post-name structure for permalink, it creates a slug as in the image: http://prntscr.com/8y3wsc " sabrisahincan 6 Needs Dev / Bug Wrangler Feedback 35796 """Permalink Settings"" admin page is largely blog/post specific" Permalinks normal normal enhancement new dev-feedback 2016-02-10T17:44:29Z 2020-02-06T19:41:12Z "The current verbiage in `options-permalink.php` is a little cryptic, and in a world pull of custom post types (including Pages) it's actually a bit confusing: Here's the current verbiage: > '''Permalink Settings''' > > WordPress offers you the ability to create a custom URL structure for your permalinks and archives. Custom URL structures can improve the aesthetics, usability, and forward-compatibility of your links. A number of tags are available, and here are some examples to get you started. I'd like to see these changed to something more like: > '''Post Link Settings''' > > WordPress offers the ability to customize the URL structure of your post and post-archive permalinks, improving the aesthetics, usability, and forward-compatibility. Several tags are available, and we've included the most popular configurations below: In addition, I'd like to propose we include the permalink tags in the dropdown Help section, rather than link off to WordPress.org. All of this would offer several UX improvements: * Keep the user on the same page rather than link off and open a new browser tab for WordPress.org * It better expresses to the end-user that this settings page is largely dedicated to posts, implying that pages and custom post types get pretty URLs largely as a consequence * Now that `unregister_post_type()` is in trunk, we should start thinking about trimming the options down to ""Pretty"" and ""Unpretty"" if the ""Posts"" type isn't even registered anymore. (There are likely to be many other considerations in this circumstance, but it's relevant here.) * It's a friendly nod to developers to remind them that this page won't help them with their custom post types, taxonomies, or rewrite rules for other purposes." johnjamesjacoby 10 Needs Dev / Bug Wrangler Feedback 9825 Enforce permalink history, outright Permalinks 2.8 normal normal enhancement assigned needs-unit-tests 2009-05-15T01:06:37Z 2019-06-04T20:40:43Z "currently, we enforce old slugs and www pref (not even sure that works, since I ended up fixing it in a plugin). canonical doesn't work for pages, or hardly. we should enforce permalink history, outright. store it in a a db field, and query against it to optimize url2post()." Denis-de-Bernardy 13 Needs Dev / Bug Wrangler Feedback 10425 Improvements to IIS7 Rewriting Code Permalinks 2.8.1 low normal enhancement assigned dev-feedback 2009-07-16T14:12:09Z 2019-06-04T21:03:34Z "#8974 introduced a set of functions and changes which allow to automatically generate Rewrite Rules for Wordpress installs running on IIS7. There are some issues with that implementation that I think are worth being written down and discussed somewhere so here we go: 1) There's no '''""Verbose"" option''' for IIS rules; while I can't say when it would make sense to have a verbose listing of all WordPress rewrite rules in `.htaccess`/`web.config` it might be something that should be available for both systems? 2) IIS does not add '''non wordpress rules''' (`$non_wp_rules`) to the `web.config` file (`iis7_url_rewrite_rules()`) which means that any custom rewriting which plugins/users can do on apache don't work on IIS. 3) At the moment it's assumed that there is only ONE single rule needed for IIS. Especially when looking at the merge with WPMU this is going to become a problem because WPMU uses '''multiple rules'''. Every rule has to have a unique name and functions like `iis7_rewrite_rule_exists()` and `iis7_delete_rewrite_rule()` only look for one rule with name ""wordpress"". Custom Rules (see 2) also won't work without a change here. For a partial fix see misc.php in [http://trac.mu.wordpress.org/attachment/ticket/991/991-webconfig.patch Patch on MU #991]) Any comments?" bforchhammer 9 Needs Dev / Bug Wrangler Feedback 20214 Pingback discovery doesn't strip fragment identifiers from URL Pings/Trackbacks 3.3 normal normal defect (bug) new dev-feedback 2012-03-11T08:34:46Z 2019-06-04T20:42:58Z "To reproduce: 1. Insert a link containing a fragment identifier into a post, e.g., `http://localhost/wp/helloworld/#comments`. 2. Save post. 3. Observe the URL which !WordPress attempts to retrieve in `discover_pingback_server_uri()` - the requested path contains the `#fragment_identifier`, which it shouldn't, and in most cases will result in a 404, thus the pingback fails." solarissmoke 1 Needs Dev / Bug Wrangler Feedback 36765 Remove Legacy Code from pingback_ping Pings/Trackbacks 4.1 normal normal defect (bug) new needs-unit-tests 2016-05-05T14:59:53Z 2019-06-04T20:58:45Z "Proposing we remove the legacy conditional url_to_postid and //$way debugging line leftover from [30139]. {{{ / let's find which post is linked to // FIXME: does url_to_postid() cover all these cases already? // if so, then let's use it and drop the old code. }}} Related: #34419 " dshanske 6 Needs Dev / Bug Wrangler Feedback 27188 deactivated_plugin behaves improperly Plugins 2.9 normal normal defect (bug) new dev-feedback 2014-02-23T05:36:00Z 2023-10-22T09:59:16Z "Currently, if someone were to hook into `deactivated_plugin`, one should expect that the `$plugin` actually be deactivated. So if, for example, I hook into it with the following code, deactivating Addthis, I don't get the expected behavior. {{{ add_action( 'deactivated_plugin', 'dtat_deactivate_self', 10, 2 ); /** * Deactivate ourself if Premise is deactivated. */ function dtat_deactivate_self( $plugin, $network_deactivating ) { if ( 'addthis/addthis_social_widget.php' == $plugin ) { die( 'Addthis: ' . print_r( is_plugin_active( $plugin ), 1 ) ); } } }}} The plugin still shows that it is active. So if I hook in here to check if plugin has been deactivated, then it fails. Instead, the `deactivated_plugin` hook should appear after the `update_option` call, which is where the plugin is actually deactivated. OR, the docs are wrong and should be updated. Attached is a sample addthis plugin extension that deactivates after Addthis is deactivated by being forced to use `update_option_active_plugins` and `update_option_active_sitewide_plugins`. See [https://gist.github.com/wpsmith/26c2e07370ee8b4c3e3f Github Gist sample plugin] for [http://wordpress.org/plugins/addthis/ Addthis]." wpsmith 11 Needs Dev / Bug Wrangler Feedback 28226 menu_page_url does not return correct URL on network admin Plugins 3.0 normal normal defect (bug) new dev-feedback 2014-05-12T18:54:57Z 2019-06-04T20:47:00Z the `menu_page_url` function calls `admin_url` to build the URL returned. it should check for network admin first and use `network_admin_url` if present norcross 17 Needs Dev / Bug Wrangler Feedback 18501 plugin_dir_path() returns unsanitized path on Windows installs Plugins 2.8 normal normal defect (bug) new dev-feedback 2011-08-23T18:40:29Z 2019-06-04T20:42:11Z "Currently plugin_dir_path() only returns the result of dirname( $file ), which can produce mixed results on local Windows installations. Attached patch takes pieces from plugin_basename() and plugins_url() to guarantee a working and accurate plugin directory path is returned in all operating systems. See #BB1596 (and associated revisions) for back-story." johnjamesjacoby 5 Needs Dev / Bug Wrangler Feedback 53149 Plugins: Consider using `block.json` file as an entry point for blocks from Block Directory Plugins normal normal feature request new dev-feedback 2021-05-04T07:51:05Z 2022-02-18T15:41:21Z "The original discussion sparked by a comment from @jipmoors on GitHub in https://github.com/WordPress/gutenberg/pull/13693#issuecomment-477904539: > WordPress automatically discovers all the block.json files in the plugin/core blocks folder and registers the corresponding block types. These block types are made available through the block registry (https://developer.wordpress.org/reference/classes/wp_block_type_registry/) PHP class, and the blocks scripts and styles are added as dependencies to the wp-block-library script and style handles. At the moment, it's mandatory to create the PHP file for the plugin that contains only a single block type registration code when developing for Block Directory. Those plugins rarely have PHP code, so we could simplify the flow for developers by making it possible to use `block.json` to source all required metadata. If the current metadata schema doesn't contain some fields that can be declared only in the PHP comment (some are duplicated in `readme.txt`, we can always include it in `block.json`. In the case when developers would like to use the `render_callback`, they could use the concept proposed in #53148 - the `renderTemplate` file reference in `block.json`. This way, the process of validation of block types submitted to Block Directory would get further simplified." gziolo 3 Needs Dev / Bug Wrangler Feedback 23863 Post Formats: allow filtering content_width per format in wp-admin Post Formats normal normal defect (bug) new dev-feedback 2013-03-25T20:55:33Z 2019-06-04T20:43:59Z "On front-end a theme can filter {{{$content_width}}} like so: {{{ function twentythirteen_content_width() { if ( has_post_format( 'image' ) || has_post_format( 'video' ) ) { global $content_width; $content_width = 724; } } add_action( 'init', 'twentythirteen_content_width' ); }}} But ... functions called in wp-admin that use the global {{{$content_width}}} variable won't be changed. For example, using trunk and Twenty Thirteen theme: 1. Create a new post, set to Image post format 2. Click Add Media to insert an image 3. Upload an image at least 800 px wide 4. You'll see in ""Attachment Display Settings"" that width for the ""large"" size to insert to the post is 604 pixels and not 724. Also, even if detecting a Post Format this way worked correctly on edit, it wouldn't work on first post creation because of how the UI uses JS to switch between the formats." lancewillett 7 Needs Dev / Bug Wrangler Feedback 27425 Templates For Posts Formats Post Formats normal normal enhancement new dev-feedback 2014-03-15T18:16:18Z 2019-06-04T20:46:12Z "If I opt to use Custom Post Templates, then I can easily put a custom post template by putting a file named single-[name of the custom post], but that same feature is not available for the post formats. I love the post format feature in WordPress, and people just don't want to use that for some reasons, but this would really attract some of the audience to use the post formats. For example, a post with Audio format will first look for single-audio.php or single-audioformat.php or anything cuz it single-audio.php may effect the Audio Custom post type. What do you guys think of this idea?" hardeepasrani 4 Needs Dev / Bug Wrangler Feedback 30775 Delete empty post problem wonderboymusic Posts, Post Types 3.3 normal normal defect (bug) reopened dev-feedback 2014-12-19T02:20:16Z 2021-11-27T03:26:30Z "If empty post was created it cannot be deleted Details are here http://arul.ru/pages/writings/delete_post_problem.htm" axdr 12 Needs Dev / Bug Wrangler Feedback 24415 The 'show_in_admin_all_list' argument for the 'register_post_status' function is ignored when the argument 'public' is set to 'false' Posts, Post Types 3.5.1 normal normal defect (bug) new dev-feedback 2013-05-25T00:06:51Z 2023-05-24T16:08:16Z "Hello, I stumbled upon a bug in the admin section of WordPress. I'm currently running the latest release (3.5.1) without any third-party plugins. After creating some custom post statuses via the 'register_post_status' function, I noticed that posts with them do not appear in the default (all) post listing in the admin section, despite me setting the 'show_in_admin_all_list' argument to 'true'. I narrowed this problem down only to the 'public' argument of the same ('register_post_status') function: if the 'public' argument of custom post status is set to 'true', then everything works as expected and the posts with a custom post status appear in the default (all) post listing in the admin section — but this also makes posts with that custom post status appear to the regular users, making them public, hence the name of the argument. It's worth noting that the 'public' argument has no such buggy effect on the 'show_in_admin_status_list' argument of the same ('register_post_status') function: it doesn't matter to what the 'public' argument is set — the links to the appropriate post statuses are showed at the top of the post listing only based on the 'show_in_admin_status_list' argument, just like it should." XyntaMan 4 Needs Dev / Bug Wrangler Feedback 30452 _wp_translate_postdata() redundantly+destructively checks current_user_can( $ptype->cap->edit_others_posts ) on update Posts, Post Types normal normal defect (bug) new dev-feedback 2014-11-21T23:13:46Z 2019-06-04T20:48:03Z "The product use-case is that the creator of a post should always be able to edit the post, even when they've assigned someone else as a byline. To do so, I'm storing their user ID to post meta: {{{ public function action_wp_insert_post_persist_author( $post_id, $post, $update ) { $post_obj = Post::get_by_post_id( $post_id ); if ( $update || ! in_array( $post->post_type, Fusion()->get_post_types() ) || ! $post_obj || ! $post->post_author ) { return; } $post_obj->set_first_author_id( $post->post_author ); } }}} And then filtering `map_meta_cap`: {{{ /** * Filter map meta cap to do whatever custom caps we need */ public function filter_map_meta_cap( $caps, $cap, $user_id, $args ) { switch ( $cap ) { case 'edit_post': $post_obj = Post::get_by_post_id( $args[0] ); if ( ! $post_obj ) { break; } $post_type = get_post_type_object( $post_obj->get_post_type() ); // Allow first authors to always edit the post if ( $post_obj->get_first_author_id() && $user_id == $post_obj->get_first_author_id() ) { // Don't require editing others' posts if ( false !== ( $key = array_search( $post_type->cap->edit_others_posts, $caps ) ) ) { unset( $caps[ $key ] ); } // If the post is published... if ( 'publish' == $post_obj->get_status() ) { $caps[] = $post_type->cap->edit_published_posts; } elseif ( 'trash' == $post_obj->get_status() ) { if ( 'publish' == get_post_meta( $post_obj->get_id(), '_wp_trash_meta_status', true ) ) { $caps[] = $post_type->cap->edit_published_posts; } } else { // If the post is draft... $caps[] = $post_type->cap->edit_posts; } } break; } return $caps; } }}} This approach generally works — except the original author isn't able to save an update to a post because `_wp_translate_postdata()` aggressively checks `current_user_can( $ptype->cap->edit_others_posts )` ([https://core.trac.wordpress.org/browser/tags/4.0.1/src/wp-admin/includes/post.php#L67 ref]). A check for `current_user_can( $ptype->cap->edit_post, $post_data['ID'] )` was added to `_wp_translate_postdata()` in r22950, but the changeset also leaves in the `edit_others_posts` check. Given `current_user_can( 'edit_post' )` falls back to `edit_others_posts` behind the scenes ([https://core.trac.wordpress.org/browser/tags/4.0.1/src/wp-includes/capabilities.php#L1114 ref]), I'd expect we could remove the second check." danielbachhuber 4 Needs Dev / Bug Wrangler Feedback 36595 can't set post_modified in wp_insert_post, becomes post_date Posts, Post Types 1.0 normal normal defect (bug) new dev-feedback 2016-04-19T15:34:29Z 2020-04-01T19:46:50Z "When manually instering a post, post_modified isn't working, it becomes the post_date {{{#!php 'test', 'post_content' => 'test', 'post_status' => 'publish', 'post_type' => 'test', 'post_author' => 1, 'post_date' => '2015-01-22 22:00:12', 'post_modified' => '2016-04-18 12:12:12', 'comment_status' => 'closed' ); wp_insert_post( $wp_test ); }}} outcome: post_modified = '2015-01-22 22:00:12'" gijsgg 10 Needs Dev / Bug Wrangler Feedback 17374 get_pages() with child_of forgets sort DrewAPicture Posts, Post Types 3.1.2 normal normal defect (bug) assigned dev-feedback 2011-05-11T10:06:17Z 2023-04-18T12:45:36Z "If you call {{{get_pages()}}} with both the {{{child_of}}} and {{{sort_column}}}, the sorting is not applied. {{{child_of}}} makes it select all pages (sorted) and later applies a subselect via {{{get_page_children()}}}. This subselect can mess up the sort order. An example was reported on http://wordpress.stackexchange.com/questions/16921/get-pages-not-ordering-as-it-should Related: #12821" janfabry 8 Needs Dev / Bug Wrangler Feedback 27683 wp_insert_post_empty_content filter issues with auto-drafts and/or fix auto-draft duplicates Posts, Post Types 3.5.1 normal normal defect (bug) new dev-feedback 2014-04-05T07:15:22Z 2019-06-04T20:46:27Z "I have explained the issue at http://wordpress.stackexchange.com/a/140326/31794 The 'wp_insert_post_empty_content' filter can have adverse effects on getting the draft for New Posts (new-post.php) resulting in numerous PHP Noticesand failure to get the auto-draft record properly. My suggestion for an intermediate fix would be to replace: {{{ if ( apply_filters( 'wp_insert_post_empty_content', $maybe_empty, $postarr ) ) { if ( $wp_error ) return new WP_Error( 'empty_content', __( 'Content, title, and excerpt are empty.' ) ); else return 0; } }}} with: {{{ if ( $id = apply_filters( 'wp_insert_post_empty_content', $maybe_empty, $postarr ) ) { if ( $wp_error ) return new WP_Error( 'empty_content', __( 'Content, title, and excerpt are empty.' ) ); else return $id; } }}} That way we can use the filter to prevent duplicates instead of having to resort to extending the db class. Though ideally a native method to prevent auto-draft duplicates (along the same lines of my code) in wp_insert_post seems best. I don't know who came up with the cleanup later idea, but it's far from an ideal practice, and as per previous tickets, doesn't always work." hexalys 2 Needs Dev / Bug Wrangler Feedback 23207 Add $labels argument to register_post_status() Posts, Post Types 3.0 normal normal enhancement reopened dev-feedback 2013-01-15T19:32:54Z 2019-06-04T20:43:43Z "WordPress functions '''register_taxonomy()''' and '''register_post_type()''' has '''labels''' argument. Why not add labels to '''register_post_status()'''? The current way to add status: {{{ $args = array( 'label' => __( 'draft', 'text_domain' ), 'label_count' => _n_noop( 'Draft (%s)', 'Drafts (%s)', 'text_domain' ), 'public' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'exclude_from_search' => true, ); register_post_status( 'draft', $args ); }}} The new way (using labels): {{{ $labels = array( 'name' => __( 'Draft', 'text_domain' ), 'singular_count' => __( 'Draft (%s)', 'text_domain' ), 'plural_count' => __( 'Drafts (%s)', 'text_domain' ), 'any_other_label' => __( 'Any Other Label', 'text_domain' ) ); $args = array( 'labels' => $labels, 'public' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'exclude_from_search' => true, ); register_post_status( 'draft', $args ); }}}" ramiy 8 Needs Dev / Bug Wrangler Feedback 36492 Add `WP_Post_Status` class Posts, Post Types 3.0 normal normal enhancement reviewing dev-feedback 2016-04-12T10:30:14Z 2019-06-04T20:56:46Z "Similar to #36217 and #36224, a dedicated class for post statuses would make it easier to work with those as they are currently represented through raw objects. The global variable `$wp_post_statuses` would then hold objects of `WP_Post_Status` which would provide the benefits of autocompletion in IDEs, and we could possibly add methods to the class in the future to make post status management easier." flixos90 16 Needs Dev / Bug Wrangler Feedback 12726 Add get_post_by_*() functions Posts, Post Types 3.0 normal normal enhancement assigned dev-feedback 2010-03-27T05:57:13Z 2019-06-04T20:41:11Z "Current there are get_page_by_path() and get_page_by_title() function but they hardcode the post_type of 'page'. With support for new custom post types I'm finding a need for functionality to look up posts of custom post types: {{{ $args = array('post_type','my_custom_post_type'); $path = 'foo-bar'; $post = get_post_by_path($path,$args); $title = 'Foo Bar' $post = get_post_by_title($title,$args); }}} Another option would be a simple get_post_by(): {{{ $args = array('post_type','my_custom_post_type'); $path = 'foo-bar'; $post = get_post_by('path',$path,$args); $title = 'Foo Bar' $post = get_post_by('title',$title,$args); }}} This code is not hard to write but looking at the functions in post.php there's not one consistent style so I'm not sure what the best approach would be to write it. Further, I don't completely understand the significance of all the code in get_page_by_path() so wouldn't want to start with it (although I could see it being modified to use the more generic functions that I propose.) I can make these updates if I get enough direction from the core team, or I'd happily just see them get done. :) " mikeschinkel 8 Needs Dev / Bug Wrangler Feedback 14077 Add support for removal of multiple features from a post type in remove_post_type_support Posts, Post Types 3.0 normal minor enhancement new dev-feedback 2010-06-24T18:10:59Z 2020-01-09T00:34:23Z "From [http://groups.google.com/group/wp-hackers/browse_thread/thread/1843101eba1f29fc this thread] add_post_type_support allows an array to be passed as the 2nd parameter, but remove_post_type_support doesn't. The patch attached adds the functionality." Utkarsh 11 Needs Dev / Bug Wrangler Feedback 36324 Post status labels use inconsistent grammar Posts, Post Types normal normal enhancement new dev-feedback 2016-03-25T05:57:25Z 2019-06-04T20:56:27Z "Our post status labels switch back and forth between being verbs, adjectives, or potentially past-participles: * All * Mine * Published * Scheduled * Drafts * Trash I'd like to suggest we tidy these up. Maybe something like: * All * Authored (I don't love this, but you get the idea) * Published * Scheduled * Drafted * Trashed " johnjamesjacoby 1 Needs Dev / Bug Wrangler Feedback 35842 Register Post Type function label default Posts, Post Types normal normal enhancement new dev-feedback 2016-02-16T10:14:42Z 2019-06-04T20:55:17Z "When registering a Post type if the label or labels arguments are not set the label takes on a default of 'Posts' and not the Post type's name. It states in the documentation that the label takes on the name of the Post type passed in as the first argument. I believe the fix is as simple as updating the defaults variable in wp-includes/post.php on line 1017 with the label argument set to the post_type variable. {{{#!php $post_type, 'labels' => array(), 'description' => '', 'public' => false, 'hierarchical' => false, 'exclude_from_search' => null, 'publicly_queryable' => null, 'show_ui' => null, 'show_in_menu' => null, 'show_in_nav_menus' => null, 'show_in_admin_bar' => null, 'menu_position' => null, 'menu_icon' => null, 'capability_type' => 'post', 'capabilities' => array(), 'map_meta_cap' => null, 'supports' => array(), 'register_meta_box_cb' => null, 'taxonomies' => array(), 'has_archive' => false, 'rewrite' => true, 'query_var' => true, 'can_export' => true, 'delete_with_user' => null, '_builtin' => false, '_edit_link' => 'post.php?post=%d', ); }}}" moshiezz 2 Needs Dev / Bug Wrangler Feedback 24572 Should be able to unlock a post outside of ajax handler Posts, Post Types normal normal enhancement new dev-feedback 2013-06-12T20:28:37Z 2019-06-04T20:44:25Z "Right now you can programmatically lock a post for editing using wp_set_post_lock, but you can't unlock it in a similar fashion. The only unlocking code is found in the ajax handler wp_ajax_wp_remove_post_lock. I've created a function wp_unset_post_lock in the style of wp_set_post_lock that unlocks a post with a given ID. I've also refactored wp_ajax_wp_remove_post_lock to use this function. The only resulting difference is that we use the current user's ID instead of the one supplied in the ajax call, but since we're unlocking the post instead of locking it, it doesn't really matter who's ID is in the meta. This change was requested by Joey Kudish of the VIP team." bbrooks 4 Needs Dev / Bug Wrangler Feedback 18513 Searching with explicit post types unsets page post type Query 3.2.1 normal normal defect (bug) new needs-unit-tests 2011-08-24T22:13:08Z 2022-02-12T20:43:32Z "Tested on WP 3.2.1, Twenty Eleven with no plugins, multisite. If I explicitly limit a search query via a GET request using an array of post_type values, the post_type for page is automatically excluded. To reproduce: * Do a search on a WP install (perhaps through a modified search form), such that the URL is like: http://example.com/?post_type[]=post&post_type[]=page&post_type[]=attachment&s=Test or http://example.com/?post_type[]=post&post_type[]=page&post_type[]=book&s=Test That's searching for ""Test"" on post, page and attachment/book post types. * Adding the following to a theme's functions.php: {{{ add_filter( 'pre_get_posts', 'wpcpt_search' ); /** * * @param array $query */ function wpcpt_search( $query ) { if ( ! $query->is_search ) return $query; print_r( $query->query_vars ); return $query; } }}} That spits out (and seemingly confirmed via the values shown in the Debug Bar plugin) the following at the beginning: {{{ Array ( [s] => Test [post_type] => Array ( [0] => post [2] => attachment ) }}} and only returns results for posts and attachments (or books). The fact that key 1 is missing makes me think that page was in the array at some point, but it's been unset, but I can't see where, or why, this might be done. (When no post_type is set, giving a post_type of 'any', which in turn gives all of the non-excluded_from_search post types, then page is one of the array values, and the search results correctly include pages.) " GaryJ 8 Needs Dev / Bug Wrangler Feedback 36652 Use meta_value in a meta query to decide type format in SQL clause ericlewis Query normal normal enhancement reviewing dev-feedback 2016-04-23T19:27:08Z 2019-06-04T20:57:29Z "The SQL clause generated for a meta query [https://github.com/WordPress/WordPress/blob/4.5/wp-includes/class-wp-meta-query.php#L628 quotes the `meta_value` in a string]. This means that if there's a post with a postmeta field for likes set to 2 and you run the query looking for posts with 10 or more likes {{{ #!php array( array( 'key' => 'likes', 'value' => 10, 'compare' => '>=' ) ) ) ); }}} the query will return the post with 2 likes. This is because the SQL is doing a string comparison, as both the column value and the compared-to value are strings. The fix for the developer is to supply a `type` parameter like `NUMERIC` in the meta query clause which coerces a numeric MySQL comparison. We could use the meta_value's type to decide the type format the value takes in the SQL clause, so that a query like this works as expected without the `type` parameter. This was [https://core.trac.wordpress.org/ticket/27272#comment:13 suggested] by @boone in #27272." ericlewis 6 Needs Dev / Bug Wrangler Feedback 56129 Author Dropdown menu missing in Quick Edit Quick/Bulk Edit 6.0 normal normal defect (bug) reopened dev-feedback 2022-07-01T19:49:54Z 2023-05-15T19:47:19Z "My publishing team just reached out to me regarding a useful feature. This feature allowed my writing team to change the author for a post through ""Quick Edit"" under each post. This feature is now visibly gone from the Quick Edit menu, forcing writers to open each post in a separate tab and change the author from there. Can you provide instructions on how to re-enable the change author field in Quick Edit? Best, Duke" iheartdogs 6 Needs Dev / Bug Wrangler Feedback 28326 List Tables don't update properly after Quick Edit Quick/Bulk Edit normal normal defect (bug) new dev-feedback 2014-05-21T15:06:40Z 2023-02-17T09:19:06Z "Scenario: I have 2 sticky posts. I go to the Post list table and click the ""Sticky (2)"" link. I see my 2 stickies. I Quick Edit one of them and make it no sticky. What do I see? (drumroll): Both posts + a link that says ""Sticky (2)"" " wonderboymusic 10 Needs Dev / Bug Wrangler Feedback 31615 UI bug using Quick Edit Quick/Bulk Edit 4.1.1 normal normal defect (bug) new dev-feedback 2015-03-12T20:13:47Z 2019-06-04T21:14:25Z "After changing the parent attribute for a page using Quick Edit, the page title is prepended with the child hyphen but the table structure does not change. Refreshing the page fixes the issue. Using latest 4.1.1 with no plugins installed and default theme. '''Steps to replicate:''' 1. Change the parent of a page or post using quick edit '''Browser''' Chrome: 41.0.2272.76 (64-bit) OS X Yosemite 10.10.2. " justingreerbbi 1 Needs Dev / Bug Wrangler Feedback 19392 Add auto-suggest support for all flat taxonomies in Bulk Edit. Quick/Bulk Edit 3.0 normal normal enhancement new dev-feedback 2011-11-29T18:37:18Z 2019-06-04T21:07:15Z "Auto-suggest in the Bulk Edit area for post_tag's was fixed in 3.3. Let's add support for all other non-hierarchy tax's in 3.4. See [http://core.trac.wordpress.org/ticket/19176#comment:11 #19176] for more info." scottbasgaard 4 Needs Dev / Bug Wrangler Feedback 21682 Rewrite endpoints are lost if a custom category or tag base is defined DrewAPicture Rewrite Rules 3.4 normal normal defect (bug) reviewing dev-feedback 2012-08-24T15:57:04Z 2019-06-04T21:07:44Z "== Problem == So this little bug was winding me up for a while. The standard approach according to the codex for adding rewrite endpoints is to call the `add_rewrite_endpoint()` function within the init hook. So far so good. The problem occurs whenever `WP_Rewrite::init()` is called ''after'' the init hook. It resets the endpoints array and so when rewrite rules are subsequently generated through the options-permalink.php admin page the rewrite rules are unknown to the system and hence don't work. `WP_Rewrite::init()` is called within `WP_Rewrite::set_category_base()`, `WP_Rewrite::set_tag_base()` and `WP_Rewrite::set_permalink_structure()`. In the latter it is only called if the permalink structure has changed so on first save of a change endpoints are lost. In the other 2 it is called every time if the slug doesn't match the default so rewrites are always lost. == Solutions: == 1. add an action hook to the start of `WP_Rewrite::rewrite_rules()` where endpoints should be added 2. store the endpoints at the start of `WP_Rewrite::init()` and restore them at the end 3. don't reset them at all I think solution 3 would make sense, the endpoints could be defaulted to an empty array and I can't see any reason to want to reset them anyway. I've attached a simple patch that works (for me at least). '''NB.''' this problem may also affect the `$extra_rules` and `$non_wp_rules` but I haven't tested that theory yet." sanchothefat 7 Needs Dev / Bug Wrangler Feedback 14991 extra_rules_top should take priority over extra_permastructs Rewrite Rules 3.1 normal normal defect (bug) new needs-unit-tests 2010-09-29T18:00:08Z 2022-12-05T12:09:28Z Since extra_rules_top are specifically added instead of generated like the those from the extra_permastructs which runs through generate_rewrite_ruls(), shouldn't the extra_rules_top take priority in conflicts? prettyboymp 6 Needs Dev / Bug Wrangler Feedback 22798 "Invalid URLs not giving 404 with ""Default"" permalink settings" Rewrite Rules 3.4 normal normal enhancement new dev-feedback 2012-12-06T23:39:35Z 2019-06-04T21:08:11Z "'''Steps to reproduce:''' - Set up Wordpress with the default .htaccess - Select the ""Default"" option under Permalink Settings - Enter an invalid URL eg 'http://blogroot.com/garlbeflax.abc' '''Expected Behaviour:''' - 404 page is displayed '''Observed Behaviour:''' - No 404 page is ever shown, no matter what the request string is - Instead, Wordpress behaves as if no path was requested, eg displaying the homepage/posts lists. - If requested url has any of the standard params in it, those params ARE executed, eg http://blogroot.com/foo?paged=2 would properly show the 2nd page of the posts. '''Suspected cause:''' In line 620 of wp-includes/class-wp.php (in WP->parse_request), there is a conditional which means the only time the request can be marked as a 404 error is if the array of rewrite rules is NOT empty: {{{ $rewrite = $wp_rewrite->wp_rewrite_rules(); if ( ! empty($rewrite) ) { ... }}} If the ""Default"" permalink is selected, and no other rewrite rules are set up elsewhere (for reasons I didn't investigate, adding a add_rewrite_rule to the theme didn't affect anything), then the $rewrite array IS empty and the request can not be checked to see if it's a 404. Therefore, execution of the request continues as if no path info were submitted. This prevents the showing of the theme's 404 page, and can get a website flagged as spam/exploitative in Google's index. '''Workaround:''' Define a permalink redirect (eg pick one of the options other than Default). Server info: {{{ Apache/2.2.16 (Debian) (w/ mod_rewrite) PHP Version 5.3.3-7+squeeze3 (mod_php5) }}} .htaccess contents: {{{ RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] }}}" vanchuck 7 Needs Dev / Bug Wrangler Feedback 16830 url_to_postid() doesn't resolve attachments when rewrite rules are disabled Rewrite Rules 1.2 normal normal enhancement reopened needs-unit-tests 2011-03-11T01:09:14Z 2019-06-04T21:06:33Z "The code of {{{url_to_postid()}}} is pretty clear in the case of disabled rewrite rules: all URLs not using the {{{p=N}}}, {{{page_id=N}}} or {{{attachment_id=N}}} forms are not parsed and the function return 0. That make sense. Now there is a special case for attachments. Attachments can be saved under a the {{{/wp-content/uploads/year/month/}}} folder structure while rewrite rules are disabled at the same time. This means there is a missed opportunity for {{{url_to_postid()}}} to resolve attachment's URLs of the long-form when rewrite rules are disabled. This was tested and reproduced on WordPress 3.1." anonymized_154007 10 Needs Dev / Bug Wrangler Feedback 27670 Plugin Information tab - inaccesible without install_plugin capability Role/Capability 3.8.1 normal normal defect (bug) new dev-feedback 2014-04-04T14:01:03Z 2019-06-04T21:10:44Z "Hello, if I understand it correctly through the '''Plugin information tab''' you can also install/update plugins. But if you permit installing plugins with f.e. with add_cap(""install_plugins"", FALSE) to some user, whole '''Plugin information tab''' is '''unusable''' for him, so you cant view details, install update even if you are allowed to. I suppose the problem is in wp-admin/plugin-install.php where is {{{ if ( ! current_user_can('install_plugins') ) wp_die(__('You do not have sufficient permissions to install plugins on this site.')); }}} so maybe extending the condition above to something like this {{{ if (( ! current_user_can('install_plugins') ) && plugin_not_installed($plugin_name)) }}} could help? Thanks Jozef Repáň " FolioVision 5 Needs Dev / Bug Wrangler Feedback 36939 Role groups Role/Capability normal normal enhancement new dev-feedback 2016-05-25T02:17:46Z 2019-06-04T21:23:29Z "WordPress's roles & capabilities API has support for allowing users to have multiple roles, and recent improvements to the Users list table have helped improve the administrator experience a bit by showing all roles rather than just the first one for each user. I think what makes multiple user-roles confusing (or maybe less valuable) is that WordPress by itself does not directly benefit from allowing users to have multiple roles, because the existing roles are designed to blanket all of WordPress's bundled functionality. I'd like to propose the introduction of Role Groups, as a layer that lives one layer above the main `WP_Roles` object to allow for groups of roles to be registered, enabling for users to have at least 1 role from each role group. ---- For example: * You install bbPress, and Bob cannot publish posts but can moderate the forums * You install WooCommerce, and Jane can contribute posts to the blog, and can also buy items from the store * You install BuddyPress, and while Chris can administrate posts, pages, and media, he cannot moderate the community In the above scenarios, each of these plugins would register their own role groups, and any user could easily have 1 role for each ""section"" of the same 1 WordPress site. ---- How could WordPress core use this? * Create a role group for Posts, Pages, Media, Comments, and Users * Ones ability to Edit posts should not assume they can moderate comments * Ones ability to moderate comments should not assume they can publish posts * Ones ability to upload media & attachments should not assume they can publish pages * Ones ability to edit an existing user should not assume they can upload media ---- How does this complicate things? Depending on how deeply this is implemented, potentially greatly, or not at all for vanilla WordPress installations. * If we keep WordPress's built-in roles identical to how they are today, they become 1 role group that grants access to Posts, Pages, Media, Comments, and Users; then plugins can define their own role groups, and we make sure WordPress has an adequate interface for assigning multiple roles for each user. * If we separate WordPress's roles into groups for each object type, backwards compatibility is a huge issue, as well as how confusing does it make granting access and assigning default roles for each group. * We may be able to remove the ""Default Role"" setting UI entirely, and leave it to plugins to reopen this functionality for improved support for multiple roles. ---- What do we do now? Let's talk this through, decide if it's worthwhile, and maybe work towards something viable. Much of this can happen without much (if any) modification to WordPress core. Worst case, we uncover more areas of WordPress that can be improved to support multiple roles per user, and address those in separate tickets. Best case, we make the existing roles & capabilities API more plugin-friendly." johnjamesjacoby 1 Needs Dev / Bug Wrangler Feedback 29009 "There should be a capability for ""publish private posts""" Role/Capability 3.9.1 normal normal enhancement reopened dev-feedback 2014-07-23T15:48:00Z 2019-06-04T21:12:02Z "I've been working on a simple membership site with only two membership levels: logged in and logged out, which is a situation that theoretically could be easily managed in WP without any plugins. However, logged in members should not be able o post publicly, while they are allowed to post whatever they want inside the membership walls, so the review system doesn't help in this situation either. Currently, I have to use a custom post type and force the status to private on publishing with a plugin to achieve the intended scenario. But I think the most parsimonious solution would be to include a capability that would allow people to ""publish_private_posts"" yet not ""publish_posts""." t.schwarz 3 Needs Dev / Bug Wrangler Feedback 20558 allow wp_localize_script data to be added to existing objects Script Loader 3.3 normal normal enhancement new dev-feedback 2012-04-27T16:44:03Z 2019-06-04T21:07:31Z "Re: WP_Scripts::localize() located in wp-includes/class.wp-scripts.php Currently when `WP_Scripts::localize()` handles the printing of wp_localize_script data to JavaScript, it starts the string with a `var` declaration, like this: {{{ $script = ""var $object_name = "" . json_encode($l10n) . ';'; }}} Because this is printed in the global scope, it becomes a global variable regardless of whether it's preceded by `var`. As far as JavaScript is concerned the above string would be equivalent to: {{{ $script = $object_name . ' = ' . json_encode($l10n) . ';'; }}} or {{{ $script = 'this.' . $object_name . ' = ' . json_encode($l10n) . ';'; }}} or {{{ $script = 'window.' . $object_name . ' = ' . json_encode($l10n) . ';'; }}} But I suppose it's possible thru hooks to make it so that the localization data prints outside of the global scope, in which case you might want the `var` to be there (if it we're wrapped in a closure). So I think the '''overall best solution''' would to check if the `$object_name` contains a period `.` character. If it does, omit the `var`. In other words, make it so that: {{{ wp_localize_script('myplugin', 'myPluginData', $object ) }}} would print: {{{ var myPluginData = {...}; }}} but that: {{{ `wp_localize_script('myplugin', 'myPlugin.data', $object )` }}} would print: {{{ myPlugin.data = {...}; }}} By default the localization data runs before any enqueued scripts, in which case `myPlugin` would not yet be defined, but we should leave that for the JavaScript dev work out. My point is that the flexiblity should be there. Another route would be to apply a filter on that line but I don't think a filter is necessary if the above change is made." ryanve 6 Needs Dev / Bug Wrangler Feedback 24990 Nested Shortcode Inside [caption] Shortcodes 3.6 normal normal defect (bug) new needs-unit-tests 2013-08-08T09:38:06Z 2021-05-08T23:37:35Z "Nested shortcodes inside caption observation: {{{ [caption] Caption Text [shortcode][/caption] }}} 1. shortcode inside alt and title processed. 2. Caption Text doesn't" prionkor 26 Needs Dev / Bug Wrangler Feedback 37183 Nested shortcodes in new-style [caption] Shortcodes 3.4 normal normal defect (bug) new dev-feedback 2016-06-26T13:05:25Z 2021-05-08T23:34:46Z "Splitting this of from #24990 after discussions on WCEU contributor day: Having something like `[caption][shortcode][/shortcode] Caption Text[/caption]` does not work. The opening shortcode get's thrown out completely because `caption` only begins to parse at `]+>\s*)?]+>(?:\s*)?)(.*)#is', $content, $matches ) ) { }}} that throws out any shortcode enclosing the image and/or link tag in the `$content`. Currently, the only workaround is to replace {{{wp_caption}}} and {{{caption}}} entirely, like this: {{{ function media_credit_caption_shortcode($attr, $content = null) { // New-style shortcode with the caption inside the shortcode with the link and image tags. if ( ! isset( $attr['caption'] ) ) { if ( preg_match( '#((?:\[media-credit[^\]]+\]\s*)(?:]+>\s*)?]+>(?:\s*)?(?:\s*\[/media-credit\])?)(.*)#is', $content, $matches ) ) { $content = $matches[1]; $attr['caption'] = trim( $matches[2] ); } } return img_caption_shortcode($attr, $content); } add_shortcode('wp_caption', 'media_credit_caption_shortcode'); add_shortcode('caption', 'media_credit_caption_shortcode'); }}} The regex can't be removed entirely because it converts the new-style caption syntax introduced in WordPress 3.4 to the older one used internally. Following a suggestion from @tychay, I've come with the attached patch filtering the `$matches` instead of the regex itself. The proposed filter would also enable new-style captions for media elements other than `` (which currently are only supported if you use the old-style attribute syntax). The default behavior is not changed, though. Currently existing unit tests are not affected." pputzer 3 Needs Dev / Bug Wrangler Feedback 25644 strip_shortcodes always removes text between shortcode tags, should be optional Shortcodes 3.6.1 normal normal enhancement new dev-feedback 2013-10-20T19:24:40Z 2019-06-04T21:09:05Z "strip_shortcodes will always remove all of the content between shortcode tags. So, for example, if I have a shortcode tag which wraps a link or a style around some text the text is lost when the shortcode is removed. Example: ''Lorem ipsum [highlight]dolor[ /highlight] sit amet, consectetur adipisicing elit'' becomes ''Lorem ipsum sit amet, consectetur adipisicing elit'' It should become ''Lorem ipsum '''dolor''' sit amet, consectetur adipisicing elit'' Removing the content between shortcodes may often be desirable behaviour, but there should be some way to retain the content. The easiest way would be for strip_shortcodes() to take a second parameter which defaults to true to remove the content, but if it is false then it leaves the content between the tags Example change to wp-includes/shortcodes.php Before {{{ function strip_shortcodes( $content ) { global $shortcode_tags; if (empty($shortcode_tags) || !is_array($shortcode_tags)) return $content; $pattern = get_shortcode_regex(); return preg_replace_callback( ""/$pattern/s"", 'strip_shortcode_tag', $content ); } function strip_shortcode_tag( $m ) { // allow [[foo]] syntax for escaping a tag if ( $m[1] == '[' && $m[6] == ']' ) { return substr($m[0], 1, -1); } return $m[1] . $m[6]; } }}} After {{{ function strip_shortcodes( $content, $strip_between = true ) { global $shortcode_tags; if (empty($shortcode_tags) || !is_array($shortcode_tags)) return $content; $pattern = get_shortcode_regex(); if($strip_between==true) return preg_replace_callback( ""/$pattern/s"", 'strip_shortcode_tag', $content ); else return preg_replace_callback( ""/$pattern/s"", 'strip_shortcode_tag_notbetween', $content ); } function strip_shortcode_tag( $m ) { // allow [[foo]] syntax for escaping a tag if ( $m[1] == '[' && $m[6] == ']' ) { return substr($m[0], 1, -1); } return $m[1] . $m[6]; } function strip_shortcode_tag_notbetween( $m ) { // allow [[foo]] syntax for escaping a tag if ( $m[1] == '[' && $m[6] == ']' ) { return substr($m[0], 1, -1); } return $m[1] . $m[5] . $m[6]; } }}} It's probably possible to do this with slicker code, but this is fairly simple and works. An example of when this problem is encountered in the real world is with the [http://wordpress.org/plugins/rb-internal-links/ RB internal links plugin] being used in post content. When the post is displayed by the [http://wordpress.org/plugins/popular-widget/ popular widget plugin] any text which was internally linked is lost, leaving a snippet of the post which makes no sense to a human reader. For an example on a live site see the first entry under the '''Most popular (all time)''' section on the right hand side of [http://diymediahome.org DIY Media Home]" jonscaife 5 Needs Dev / Bug Wrangler Feedback 33593 Make shortcodes case insensitive Shortcodes normal normal feature request new dev-feedback 2015-08-29T00:10:16Z 2019-06-04T21:16:46Z "Right now, shortcodes are case sensitive. For example, `[thanks]Guy Incognito[/thanks]` works but `[Thanks]Guy Incognito[/Thanks]` doesn't. For me, as a developer, it makes sense. For my writers, who have complained about `[Thanks]` and the like not working, it doesn't. http://wordpress.stackexchange.com/questions/102375/are-shortcodes-case-sensitive shows that shortcodes are indeed case sensitive. But why? Why wouldn't the regex have the `i` modifier and become insensitive for the shortcode name itself (I'm not talking about shortcode parameters, just the name)?" archon810 2 Needs Dev / Bug Wrangler Feedback 33234 Tags/Categories Count Incorrect Taxonomy normal normal defect (bug) new dev-feedback 2015-08-02T22:31:34Z 2023-05-03T20:24:41Z The tags and categories management pages show inaccurate count when posts are marked private. mikedunn 4 Needs Dev / Bug Wrangler Feedback 36956 Trigger event when taxonomy term is added with ajax Taxonomy normal normal enhancement new dev-feedback 2016-05-26T22:33:28Z 2019-06-04T21:23:34Z "When adding a taxonomy term via ajax, it would be nice if some JavaScript event was triggered, maybe on `.wp-list-table.tags` or the newly added row itself. This would give taxonomy term plugins some event to listen for and take action on. Something akin to: {{{ this.trigger( 'term-added' ); }}} Maybe `tag-added` is more appropriate, since all of those form elements seem to use `tag` for everything, regardless of the taxonomy." johnjamesjacoby Needs Dev / Bug Wrangler Feedback 10275 Filter logic has been put into the template loader while it not belongs there. Themes 2.8 normal normal defect (bug) reopened dev-feedback 2009-06-25T20:22:34Z 2019-06-04T21:05:33Z "Some time ago, filter logic has been introduced in the template-loader. Looks like a fix for the inability to handle attachments propperly (WP misses more and more a strict request parsing so that newer features tend to introduce more and more bugs). The code has not been removed yet. It should be removed there or put into a more appropriate location. The code in question is: {{{ remove_filter('the_content', 'prepend_attachment'); }}} in /wp-inclueds/template-loader.php around line 30." hakre 2 Needs Dev / Bug Wrangler Feedback 33017 Images displayed with page.php instead of index.php Themes normal normal defect (bug) reopened needs-unit-tests 2015-07-16T15:04:19Z 2019-06-04T21:15:50Z "I am developing a theme and currently do not have an `attachment.php` or a `single.php`. When I insert an unattached image into a post and select ""Link to: Attachment Page"", I expect the image to be displayed with `index.php` according to the template hierarchy [https://developer.wordpress.org/files/2014/10/wp-template-hierarchy.jpg]. However, the attachment page is displayed with the `page.php` tempalte instead, and the URL is under my static front page. The issue does not show up with images attached to the post." creon 6 Needs Dev / Bug Wrangler Feedback 29555 Theme details allowed HTML Themes 3.9 normal normal defect (bug) new dev-feedback 2014-09-06T11:50:17Z 2019-06-04T21:12:13Z "Theme authors can use some HTML in their theme's style.css Description (and Theme Name and Author). If I'm not wrong, sanitize_header() in WP_Theme class sets the allowed HTML tags and attributes and for Description they are: {{{ 'a' => array( 'href' => true, 'title' => true ), 'abbr' => array( 'title' => true ), 'acronym' => array( 'title' => true ), 'code' => true, 'em' => true, 'strong' => true, }}} This works in the installed themes browser, where theme details are grabbed from the theme's style.css. But in the theme install views, where theme details come from WordPress.org API, some HTML tags (for example ""a"") are completely stripped out (don't know if this is intentional) while others (for example ""abbr"") are not unencoded before being used as HTML in the view and they end up being displayed as plain text, even in the WordPress.org site (see the last two screenshot). I've found the someway related #27641 but please notice HTML is returned by the API already encoded so even using triple braces `>` etc. will still be `>` Installed themes browser: [[Image(http://i.imgur.com/B9TdIUa.png)]] Themes install: [[Image(http://i.imgur.com/JoP1yjp.png)]] WordPress.org themes site: [[Image(http://i.imgur.com/fyYmdeK.png)]]" afercia 3 Needs Dev / Bug Wrangler Feedback 28904 custom header stores full URL in database Themes 3.9.1 normal normal defect (bug) new dev-feedback 2014-07-14T21:43:16Z 2019-06-04T21:11:53Z "set_header_image is storing the full URL to the custom header in the database. It should only store the relative path in the database and get_header_image should prepend the relative path with get_bloginfo('url'). This makes migrating your site easier. Or you can have a develop and live environment with an easy database sync (my particular issue). '''set_header_image''' Replace: {{{ $choice['url'] = esc_url_raw( $choice['url'] ); }}} With: {{{ $choice['url'] = str_replace( get_bloginfo('url'), '', esc_url_raw( $choice['url'] ) ); }}} or find another method of getting the relative URL '''header_image''' then add the bloginfo URL to header_image (and probably a few other places). {{{ function header_image() { echo esc_url( get_bloginfo('url').get_header_image() ); } }}}" tverlaan 2 Needs Dev / Bug Wrangler Feedback 16883 "Add check for ""Template Version"" on theme activation" Themes 3.1 normal normal enhancement new dev-feedback 2011-03-18T03:28:36Z 2019-06-04T21:06:36Z "Related: #16395 In addition to adding Template Version to the standard meta information extracted from style.css in `get_theme_data()`, I think that for this information to be useful, a child theme shouldn't be able to be activated unless the template template the child theme uses (parent theme) meets the minimum version requirement identified in ""Template Version"". A polite and graceful failure, with an error notice, would be preferable :-) Reason: many times child themes utilize functionality that only exists in the latest version of a parent theme. They're stuck either writing backward compatibility into into their code, or risking whitescreens. This not only prevents that, but it could be used to gently encourage the user to update the parent theme. Certainly not a candidate for 3.1.1, but perhaps 3.2?" nathanrice 6 Needs Dev / Bug Wrangler Feedback 26516 Make it easier to check theme support obenland Themes 2.9 normal normal enhancement assigned dev-feedback 2013-12-10T02:02:22Z 2019-06-04T21:09:49Z "Currently we don't make it too easy for plugins (and themes I suppose) to get access to the information passed in the second argument to `add_theme_support()`. To get more information about a theme's support for post thumbnails for example, a plugin would have to assign the return value of `get_theme_support()` to a variable and then access the value stored in the first key of the returned array: {{{ #!php $directory/$slug.php -> $slug-$name.php -> $slug.php)?" aaroncampbell 44 Needs Dev / Bug Wrangler Feedback 12877 Modular themes: Apply template hierarchy to folders within a theme Themes normal normal feature request new dev-feedback 2010-04-06T16:26:15Z 2019-06-04T21:05:41Z "Applying template heirarchy to folders within a theme will allow themes to be broken into modules, allowing theme developers to substantially reduce repeated code. This is an automated, complete version of the use of get_template_part() in Twenty Ten. I've written posts on the [http://wp.me/pS0xt-1f justification for modular themes] and [http://wp.me/pS0xt-30 their potential to transform theme organization]. Based on [http://wp.me/pS0xt-3O my tests], these functions should cause no noticeable difference in performance. The patch has the added benefit of creating an accurate global $wp_template_hierarchy object (and a getter method), so any plugin/theme can access the template hierarchy for $wp_query. The patch introduces several new functions: get_template_module($folder), get_template_hierarchy(), update_template_hierarchy(), and 2 private functions. Finally, the patch also add a 'locate_template' filter on $template_names at the beginning of locate_template(), and turns the large conditional in template-loader.php into a function: template_loader()." koopersmith 28 Needs Dev / Bug Wrangler Feedback 25927 Remove the theme information from style.css and add a theme manifest file Themes 3.7.1 normal normal feature request reopened dev-feedback 2013-11-12T17:31:31Z 2019-06-04T21:09:32Z "Currently the metadata related to a theme is store in a comment at the top of style.css. I argue this is not a clean separation of concerns, yes .css files can contain semantic information to help the reader navigate the file, but using it to store metadata is bad practice. I propose creating a theme manifest file that sits at the root of the theme directory and contains all the metadata related to the theme that's currently at the top of style.css, things like the name, author, etc. but it could also contain a file list for the theme with a few lines about the files usage. Externalising the metadata and adding more contextual information will greatly improve developers ability to hack on top of others themes and understand their rationale for certain decisions." jolyonruss 8 Needs Dev / Bug Wrangler Feedback 47563 Update get_template_part() function Themes normal normal feature request reopened dev-feedback 2019-06-19T12:31:29Z 2021-03-21T18:49:44Z "I think it would be good to add the ability to programmatically override the output of posts in the loop without interfering with the theme files ( for example, archive.php and others ). This will allow you to change the display of posts through plugins. **For example.** To adapt the theme to work with Woocommerce, you need to edit the theme code. For users, this is sometimes very difficult. My code: {{{#!php /opencloud/symed/Symfony/Component/EventDispatcher/EventDispatcherInterface.php`. That leaves 78 characters to spare. Should be plenty... except for WP_Upgrader::unpack_package() wanting to use basename($zipfile) to create a directory for unpacking into. The zipfile did indeed have a filename of over 78 characters long. Boom! To prevent other scenarios in which someone might get hit by this, we can just change this line: {{{ $working_dir = $upgrade_folder . basename($package, '.zip'); }}} to: {{{ $working_dir = $upgrade_folder . substr(md5(basename($package, '.zip')), 0, 8); }}} The use of md5() to prevent collisions might be over-cautious (especially given that WP_Upgrader::unpack_package() already tries to empty out the upgrades directory), but it's also harmless." DavidAnderson 11 Needs Dev / Bug Wrangler Feedback 23487 is_blog_installed gives erroneous result on moved database Upgrade/Install 3.0 normal normal defect (bug) new dev-feedback 2013-02-16T13:11:37Z 2021-03-30T14:02:15Z "I resently moved my blogs to a new database, but when I tried it out, on of the blogs wanted a new install. Of course I did not want to do an install and overwrite my blog. I indirectly found the reason in is_blog_installed, which suppresses database errors. Thus I did not see this error. SELECT command denied to user 'techblog'@'localhost' for table 'wp_options' Of course it was my fault, but I virtually had to take the wordpress code apart to find out why my migration failed. Of course this is not a big problem on new installs, but very likely to happen on moving databases. " Kjeld Flarup 1 Needs Dev / Bug Wrangler Feedback 16156 update-core is oblivious to api.wp.org being unreachable Upgrade/Install normal normal defect (bug) new dev-feedback 2011-01-08T09:51:38Z 2020-09-17T18:31:46Z "A server running 3.0.4 had trouble reaching *.wordpress.org for some unknown reason. (This wasn't during the brief api.wp.org outage, and it worked otherwise.) Problem is, update-core was completely oblivious to this. It's even worse when running 3.1, because the 'Check Again' button will refresh the page and tell you we last checked for updates *just now*. Try Again or Check Again should reflect that the API is unreachable when this can be determined. Claiming that we checked for updates is also really lame, so we should see if the transient tells us how long it's been since the last one. Side note, the plugin install et al. HTTP error messages are rather cryptic, and we should also make those more user friendly." nacin 20 Needs Dev / Bug Wrangler Feedback 17451 Unify plugin update notices and include changelog data nacin* Upgrade/Install normal normal enhancement accepted dev-feedback 2011-05-16T09:23:25Z 2019-06-04T21:07:00Z "Currently the after_plugin_row hook is only used on plugins.php which is used by the Changelogger plugin to show plugin changelogs inline. If the hook is also added to the bottom of list_plugin_updates in update_core.php then changelogs could also be displayed on that page too. It's only a single line change so not sure how/if it's worth me attaching a patch for this?" dempsey 11 Needs Dev / Bug Wrangler Feedback 15861 Sorting users by post count Users normal normal defect (bug) new dev-feedback 2010-12-17T10:21:24Z 2019-06-05T06:37:48Z "Currently, to enable sorting by post count, there's a JOIN made between the users table and the posts table. This is bad, because users is a global table, which might be stored in a separate database. Short-term solution for 3.1 is to disable sorting. Long-term solution is to avoid the JOIN somehow. " scribu 10 Needs Dev / Bug Wrangler Feedback 35859 get_edit_user_link should always return the edit user link even if the given ID is that of the current user Users normal normal defect (bug) new dev-feedback 2016-02-18T11:18:13Z 2019-06-05T06:43:31Z "In my scenario a user action triggers an email that is sent to the site admin that contains a link to edit that users profile. When I'm using the function as follows {{{#!php Array of objects, '''except when fields specifies a single field to be returned, then an array of values is returned'''. If fields is set to all_with_meta, it will return an array of WP_User objects. This statement appears to be untrue, but would be incredibly useful if it were true. Patch adds this functionality to `get_users()`. Potentially related: #18581" chipbennett 16 Needs Dev / Bug Wrangler Feedback 26195 Deleting users asks for reassigning posts even when there is no post/comment Users 3.7.1 normal normal enhancement new dev-feedback 2013-11-24T14:35:55Z 2019-06-05T06:39:36Z "When deleting a single user or bulk deleting users, the confirmation page asks what should be done with the posts of the user. However, this question should not be displayed, if the sum of the posts of these user(s) is 0. Then, the delete button should become immediately active. This change would make deletion safer, as ""real"" users would be less likely to be deleted in error. Recommended user interface: - No posts present: ""This user/these users have no post"", followed by an active ""delete users"" button - Posts present: ""This user/theses users have a total of [number] posts"", followed by the current delete/assign query. " MarcelWaldvogel 5 Needs Dev / Bug Wrangler Feedback 11297 Don't email the admin when they create a user from the backend Users 2.9 low minor enhancement new dev-feedback 2009-12-01T12:05:31Z 2019-06-05T06:44:57Z "I just created the user myself. I already know I did it. I don't need to be told again. Emails should only be sent to the admin when a user registers themselves (if that is enabled). They shouldn't be sent when the admin manually creates a new user." caesarsgrunt 10 Needs Dev / Bug Wrangler Feedback 23413 Provide query result data to custom user columns Users normal normal enhancement new dev-feedback 2013-02-07T15:22:53Z 2019-06-05T06:39:04Z "When the filter manage_users_custom_column is triggered, it sends an empty string for the value field. Since it's easy enough to extend the WP_User_Query with extra fields, it would be good to have those fields passed through if they exist to save having to requery the database with the user_id parameter to get the data. I have attached a patch to show what I mean." JohnC28 3 Needs Dev / Bug Wrangler Feedback 20459 Super admin should be able to bypass banned/limited domains when creating users Users normal minor enhancement new dev-feedback 2012-04-16T16:12:25Z 2019-06-05T06:38:31Z "The function `wpmu_validate_user_signup()` is run whenever a new user is created, either through self-registration (wp-signup.php) or through manual user creation by an admin. `wpmu_validate_user_signup()` does two different kinds of validation: (1) validation that is more or less technically required by WP, like spaces in usernames, email/login uniqueness, etc. (2) checks against some admin-set membership restrictions, namely, email domain whitelist (limited_email_domains) and blacklist (`is_email_address_unsafe()` and banned_email_domains). The second kind of validation is problematic in the following use case: An MS install might restrict open membership based on email domains, but the admin might occasionally want to make exceptions to the rule and manually create an account. Currently, there are two ways to bypass the built-in checks: to temporarily remove the domain restrictions at Network Admin > Settings, or to filter `'wpmu_validate_user_signup'` and remove the error messages. Having to manually change settings for this purpose is pretty hackish. The filter method works, but my experience (from consulting with a fairly large number of MS network admins) is that this is a pretty common use case, so it seems like it should be supported by default. So I'm proposing that the domain checks be skipped when `is_super_admin()`. Patch attached." boonebgorges 7 Needs Dev / Bug Wrangler Feedback 36368 Add `access_admin` capability Users normal normal feature request new dev-feedback 2016-03-29T13:55:09Z 2019-06-05T06:44:00Z "Many, many plugins do various types of checking of capabilities the determine if a user should ''really'' have the ability to view the WordPress admin. It's very common to prevent that from happening. Within WordPress's roles and capabilities, there are many checks that have something to do with the admin, like `edit_posts` and myriad others, but there isn't one that's an explicit `admin_access` check. Even a Subscriber role sees the toolbar by default, only to be able to edit their profile and see WordPress news, the activity widget (and Akismet stats btw) once they log in. I can't imagine many scenarious where this is truly wanted by site administrators -- for lower level users to even know what CMS the site uses, much less view the admin. I'd love to see `admin_access` or a similar capability enabled in core. I think for backward compatibility reasons, it may have to be set to `true` for all roles by default, but at least plugins would have a standard capability to flag for disabling it. It'd also be nice as a ""Reading"" option for the site owner to choose roles that should have access to the admin and would trigger this capability -- but that's probably wishing too much from a core standpoint. @drewapicture has a plugin called [https://wordpress.org/plugins/remove-dashboard-access-for-non-admins/ Remove Dashboard Access] that has a [https://cloudup.com/cn67XAgAIop pretty thorough UI], if folks were interested in taking this the next step, but I'd rather focus on the capability itself as the primary mission of this ticket. To me this is a new user experience issue and would make for a very helpful flag for plugin authors, at a minimum." krogsgard 5 Needs Dev / Bug Wrangler Feedback 14460 New Permission for no_user_edit so users with edit_users can't edit it Users 3.0 normal normal feature request new dev-feedback 2010-07-29T23:28:18Z 2019-06-05T06:37:28Z "I recently experienced a problem where I have an administrator role with full access and a site administrator role with most access including the ability add, edit, and delete users. However, I don't want the Site Administrator to be able to delete users of the role Administrator. The change I'm proposing is a new permission or marker which states that if enabled, this user can't be changed by another user who isn't the same role. If possible, I might try to add the patch myself. This is a fairly important issue which would is interfering with WordPress' use as a content management system, and the only work around I've found is to edit core file." brandon.wamboldt 3 Needs Dev / Bug Wrangler Feedback 53625 The 'explode' function does not work on widget block editor. Widgets 5.8 normal major defect (bug) reopened dev-feedback 2021-07-08T13:47:39Z 2021-07-16T14:08:03Z "The `explode()` function does not seem to be working on the new Widget block editor. I am testing it on the RC-2 version. I have created a simple widget that accepts Title, Description, and multiple selections from a Checkbox list items (Screenshots attached) On selecting checkboxes, the values form a comma-separated string (e.g. 123456, 9822310, 457790 etc.) and stored in a textbox. Inside the `update()` function, I am exploding this string and storing the array as `$instance['groups']` element, which in turn gets saved in the database (`wp_options` table). The functionality works as expected if I have the `widgets-block-editor` support disabled. But when enabled, the `explode()` function is not working and nothing is in `$instance['groups]`. {{{#!php %TITLE% }}} The event_template source for the Available Widget is: {{{ }}} The event_template source for the widget after it is dragged to a widget area is: {{{ }}} The source for the widget after it is first saved is: {{{ }}} I setup a test to output $new_instance and $old_instance during the ""update"" process. Step 1: Moving widget from Available Widgets to Widget Area (in IE): {{{ NEW INSTANCE: Array ( [title] => [date] => [number_of] => 1 [date_types] => Month [limit] => 0 [timeformat] => g:i a [dateformat] => jS [date_template] => %DATE% [monthformat] => F Y [month_template] => %MONTH% ) OLD INSTANCE: Array ( ) }}} Step 2: Saving widget in Widget Area: {{{ NEW INSTANCE: Array ( [title] => [date] => [number_of] => 1 [date_types] => Month [limit] => 0 [timeformat] => g:i a [dateformat] => jS [date_template] => %DATE% [monthformat] => F Y [month_template] => %MONTH% ) OLD INSTANCE: Array ( [title] => [show_rss_feed] => off [show_ical_feed] => off [date] => [span] => +1 Month [number_of] => 1 [date_types] => Month [calendars] => [limit] => 0 [dateformat] => jS [timeformat] => g:i a [monthformat] => F Y [event_template] => [date_template] => %DATE% [month_template] => %MONTH% [hide_duplicates] => ) }}} Step 3: Pasting HTML code back into Event Template and saving Widget: {{{ NEW INSTANCE: Array ( [title] => [date] => [number_of] => 1 [date_types] => Month [limit] => 0 [timeformat] => g:i a [dateformat] => jS [date_template] => %DATE% [monthformat] => F Y [month_template] => %MONTH% [event_template] => %TITLE% (%TIME%) ) OLD INSTANCE: Array ( [title] => [show_rss_feed] => off [show_ical_feed] => off [date] => [span] => +1 Month [number_of] => 1 [date_types] => Month [calendars] => [limit] => 0 [dateformat] => jS [timeformat] => g:i a [monthformat] => F Y [event_template] => [date_template] => %DATE% [month_template] => %MONTH% [hide_duplicates] => ) }}} Here is a screenr showing the problem not working in IE9 and working in Chrome: http://www.screenr.com/mkhs " layotte 5 Needs Dev / Bug Wrangler Feedback 33180 Widgets not preserved after switching theme and deactivate plugins Widgets 2.8 normal normal defect (bug) new dev-feedback 2015-07-29T17:59:40Z 2019-06-05T06:41:16Z "Steps to reproduce: - Activate any plugin with available widget. - Use this widget in sidebar of actual theme. - Deactivate all plugins. - Switch theme (for example Twenty Fifteen). Note: These steps are frequently used for debugging problems. - Switch back to previous theme. - Activate all plugins. Expected result: Widget is still active and visible. Current result: Widget is missing. When used together with any core widget, then this widget is preserved during workflow above." pavelevap 5 Needs Dev / Bug Wrangler Feedback 17078 is_active_sidebar() doesn't work with Numeric sidebar ID's Widgets 2.8 normal normal defect (bug) new close 2011-04-07T10:06:54Z 2020-05-20T21:00:56Z "This needs a small fix: Function is_active_sidebar( $index) converts $index to a string then uses wp_get_sidebars_widgets() to see if the sidebar is active ..but keys in the array wp_get_sidebars_widgets() generates can be integers if the ID's of the registered sidebars are integers" lanceo 7 Needs Dev / Bug Wrangler Feedback 24283 is_active_widget() incorrect logic Widgets normal normal defect (bug) new dev-feedback 2013-05-08T07:07:41Z 2019-06-05T06:39:17Z "`is_active_widget()` only returns 'true' only if widget used inside sidebar. But there is a provision to use widget directly using `the_widget()` function. I believe there is a need of alter the logic of just checking inside sidebars." valllabh 1 Needs Dev / Bug Wrangler Feedback 23008 Add a Hook To Hide Inactive Widgets Widgets 3.5 normal normal enhancement new dev-feedback 2012-12-19T19:59:12Z 2019-06-05T06:38:58Z "Hello, This is my first feature request so hopefully I'm going through the process correctly. Onto the request... Adding a hook to remove or hide the Inactive Widgets sidebar on the WordPress Admin Widgets page would be very useful for developers who don't use the area and want to be able to hide it for better UX. If this is approved I would love to submit a patch. :)" BFTrick 2 Needs Dev / Bug Wrangler Feedback 20596 Adding more actions to a widget Widgets normal normal enhancement new dev-feedback 2012-05-02T00:14:28Z 2019-06-05T06:38:33Z "On the Widget UI, there is a ""Close"" button, aside with the ""Delete"" button, and I that developers should have a way to add more of those. For exemple, I would see as a good use case when you have a way of previewing the widget. Because right now the only way is by JS which is kinda of lame. Thanks," webord 3 Needs Dev / Bug Wrangler Feedback 31643 Allow widget sidebars to be loaded open or closed via filtering Widgets 4.2 normal normal enhancement new dev-feedback 2015-03-14T23:44:54Z 2019-06-05T06:40:41Z This could be useful to allow certain sidebars to always load open or closed. silb3r 2 Needs Dev / Bug Wrangler Feedback 31085 CPT selector to “Recent Posts” widget Widgets 4.2 normal normal enhancement new dev-feedback 2015-01-21T11:18:12Z 2019-06-05T06:40:29Z "I think that ""Recent Posts"" widget should support selection to show all posts or only in selected CPT." sippis 4 Needs Dev / Bug Wrangler Feedback 29790 Widgets don't know the widget area context they're in Widgets normal normal enhancement new dev-feedback 2014-09-29T12:44:45Z 2019-06-05T06:40:16Z "If you have a widget in a widget area (both on the admin side and front-end side) it does not know in which widget area it is in. Use cases for this would be: - custom filtering and/or styling on the front-end of a widget based on its location. - having some editor options turned on/off based on widget-area." ruud@… 12 Needs Dev / Bug Wrangler Feedback 23020 wp.getPageList should act like wp.getPages XML-RPC 2.2 normal normal defect (bug) new dev-feedback 2012-12-20T13:47:13Z 2019-06-05T06:39:01Z "I know that wp.getPageList is obsolete, but I think it should act like wp.getPages At the moment wp.getPageList returns even the trashed pages and doesn't return the status of the page. The weird behavior i've seen with wp.getPageList on a third-party client is shown below: - Refresh the pages list. - The Page 'A' is in the list. - Select the page 'A' and delete it. - Refresh the pages list and the page is still there. Doh!" daniloercoli 1 Needs Dev / Bug Wrangler Feedback 23866 WordPress xmlrpc wp_getPosts filter for slug XML-RPC 3.4 normal normal enhancement new dev-feedback 2013-03-26T20:09:31Z 2019-06-05T06:39:12Z "When using the Wordpress xmlrpc, it is sometimes very useful to get posts based off of slugs rather than post id. A use case for this would be synchronizing or migrating two Wordpress sites with the same posts, but with different databases and post ID's. " SunWaves 2 Needs Early Attention 20902 redirect_canonical() on using permalink: Not all $_GET being redirected chriscct7 Canonical 3.4 normal normal defect (bug) reviewing has-patch 2012-06-11T09:30:08Z 2019-06-04T19:23:06Z "Using permalink, I suppose that all query_var entered manually on URL or using $_GET will be redirected to proper permalink. Apparently not all being redirected at all. AFAIC: 1. /?post_format=image : should be redirected to /type/image/ 2. /?pagename=blog : should be redirected to /blog/ 3. /?author_name=admin : should be redirected to /author/admin/ Unfortunately, they are not. It can be done by filtering redirect_canonical() but it will be better if it's being done by default as we can see that /?category_name=cat will be redirected to /category/cat/" arieputranto 7 Needs Early Attention 23309 Not all WP_Query::query_vars get updated during WP_Query::get_posts() Query normal normal defect (bug) new needs-unit-tests 2013-01-28T15:40:56Z 2019-06-04T20:43:47Z "There is a lot of logic within the WP_Query::get_posts() method that fills in missing query vars with defaults and manipulates others based on the rest of the query. However, some of the final states for many of the variables aren't updated in the WP_Query::query_vars array. For example, the post type is lost as a local variable and post_status is used for building compiling mysql expressions, but never directly updated. The result is that any plugins that want to recreate the query for another system, (ie, an external search provider) must directly copy much of the business logic that WP_Query::get_posts() has embedded in it in order to fill in for the incomplete query_var array. " prettyboymp 4 Needs Docs or Unit Tests 17376 Multisite Subfolders and bunk /wp-admin areas Bootstrap/Load normal normal defect (bug) new needs-unit-tests 2011-05-11T15:07:38Z 2021-06-24T18:50:17Z "On a multisite installation with subfolders, navigating to: www.mysite.com/i-dont-exist/wp-admin loads a dashboard and maintains the i-dont-exist in the url. That part exists if i navigate to themes and/or plugin pages. However, I'm actually altering the base site. This can be quite confusing if someone makes a typo in a sitename and they end up changing the base site (like happened to us) :(" MadtownLems 30 Needs Docs or Unit Tests 32848 Null values for Update Options does not reset in $all_options Cache API 4.2.2 normal normal defect (bug) new needs-unit-tests 2015-06-30T22:04:47Z 2019-06-04T19:30:18Z "This is a fun, extremely niche case. We were using the Settings API to save out options for a plugin when we came across a really frustrating scenario. Half the time our setting was returning values that were not accurate to the setting that was stored in the database and in cache. Come to find, the value being returned from wp_load_alloptions was incorrect while every other instance was correct. In our case, these values were in the database, memcache, and the single value in wp-object-cache. On [https://core.trac.wordpress.org/browser/tags/4.2.2/src/wp-includes/option.php#L319 ""line 319 of option.php""], we're using isset to check the value in the array. This returns false if the value is NULL. This leads to all kinds of sadness. I would propose we instead use `array_key_exists` here to ensure we're getting true if the key is present in the array at all. " MikeNGarrett 4 Needs Docs or Unit Tests 23290 When using switch_to_blog() with a persistent object cache that lacks wp_cache_switch_to_blog() support, non-persistent groups are not maintained Cache API 3.0 low normal defect (bug) new needs-unit-tests 2013-01-25T05:28:44Z 2019-06-04T19:41:33Z If you're using a persistent object cache that lacks the new `wp_cache_switch_to_blog()` support, WordPress core `else`s into a complete cache clobbering branch. It is smart about grabbing the global groups and re-adding those after `wp_cache_init()` is called, but it doesn't do the same for non-persistent groups. Those are a hardcoded array. So if you call `switch_to_blog()`, you would lose any custom-added non-persistent groups. markjaquith 10 Needs Docs or Unit Tests 17661 Appending date & author based query vars to a permalink overrides the permalink Canonical 3.1 normal normal defect (bug) new needs-unit-tests 2011-06-02T11:05:05Z 2019-06-04T19:22:31Z "Some canonical code branches are not properly accounting for extra query variables being specified via the url. For example, these url's are not handled properly: {{{ /2008/?author=1 redirects to /author/admin/ /author/admin/?year=2008 redirects to /year/2008/ /category/uncategorized/?year=2008 redirects to /2008/ }}} This happens with most date based branches, as once a higher priority canonical rule is hit, the permalink component is ignored. The canonical code includes a branch to add any ""forgotten"" `$_GET` variables back onto the url, however this doesn't help when it's the rewritten variables are being lost." dd32 2 Needs Docs or Unit Tests 23602 "Incorrect canonical redirect if p=123 query argument present in ""paged"" archives" Canonical 3.5 normal normal defect (bug) new needs-unit-tests 2013-02-25T08:34:19Z 2019-06-04T19:23:57Z "URLs that include `page/n` AND `p=n` query variable, such as: http://example.com/page/3/?p=123 will issue a 301 redirect to the homepage. This is being reported as incorrect behaviour in Google Webmaster Tools, because: The target URL does not exist and your server is not returning a 404 (file not found) error. Your server is redirecting requests for a non-existent page, instead of returning a 404 response code. This creates a poor experience for searchers and search engines. A fix would be to strip the `p=` query variable and redirect to the paged archive. From: http://example.com/page/3/?p=123 to: http://example.com/page/3/ " kasparsd 2 Needs Docs or Unit Tests 10690 WordPress does not support non-ascii characters in the domain name markjaquith Canonical 2.8.4 normal normal defect (bug) reopened needs-unit-tests 2009-08-26T18:26:13Z 2019-06-04T19:21:34Z WordPress' clean_url() strips out most characters, which are non-ascii for security reasons. This is causing problems, if you want to run a WordPress blog on a domain containing non-ascii-characters (e.g. müller.com), because WordPress generates wrong URLs on redirects. paddya 36 Needs Docs or Unit Tests 20386 "Year permalinks ""win"" against category permalinks" Canonical normal normal defect (bug) new needs-unit-tests 2012-04-07T05:20:55Z 2019-06-04T19:22:56Z "We need to decide whether category permalinks should take priority over year permalinks. e.g. /2008/?category_name=cat-a Should that stay the same, or redirect to: /category/cat-a/?year=2008 We have a unit test which is failing." markjaquith 4 Needs Docs or Unit Tests 32917 Tests_DB_Charset tests don't fully cover wpdb::strip_invalid_text_for_column() Charset 4.2 normal normal enhancement new needs-unit-tests 2015-07-08T00:20:27Z 2019-06-04T19:30:40Z "Related / previously: * #32351 * #32308 * #32127 * #21212 `Tests_DB_Charset` includes a data provider that feeds various charsets into its `wpdb::strip_invalid_text()` test, but not for its `wpdb::strip_invalid_text_for_column()` test, which means it's not being tested fully. It should be." johnbillion 1 Needs Docs or Unit Tests 36409 Comments number is wrong Comments normal normal defect (bug) new needs-unit-tests 2016-04-04T14:21:26Z 2019-06-04T19:35:47Z "Hi, the comment number return the number of approved comments, this means all approved comments even those are replies to unapproved comments, for example if a user post comment and people replied to it, then the admin decide to hide this parent comment by disapproving it, the comment number will decrease only by one and keeping counting the hidden replies So there are two option to fix that : 1. Hold/Disapprove all children when disapproving the parent. 2. Recalculate the comment number and excluding comments has an unapproved parent. Regards, Sidati" sidati 7 Needs Docs or Unit Tests 35805 Reverse page order in wp_list_comments() with newest comments first boonebgorges Comments 4.4.2 normal normal defect (bug) reviewing needs-unit-tests 2016-02-12T00:21:26Z 2019-06-04T19:34:45Z "Hey there, since wp 4.4 there were lots of bugs in the wp_list_comments()-function. Some of them are already fixed, now I found another one. If you change the comments order from default (oldest first) to newest first, the page order is wrong (reverse page order). == Example == You have 4 pages by sending following param you get these pages: {{{ page=1 -> 4 page=2 -> 3 page=3 -> 2 page=4 -> 1 }}} == How I call this function == Inside the post-loop I'm calling: {{{#!php
}}} And comments-content.php has following part: {{{#!php $cpaged, // Variable defined before, default: 1 'per_page' => 2 ) ); ?> }}} PS: In ticketing system the version 4.4.2 is not available :-)" Ninos Ego 7 Needs Docs or Unit Tests 34110 WordPress Trackback Bug when Comment Pagination is Enabled Comments normal normal defect (bug) new needs-unit-tests 2015-10-01T11:40:36Z 2019-06-04T19:32:40Z "Hi, I just find a comment bug with wordpress which I think is there for a ling site, may be since v2.7+ but never actually fixed. '''Bug Details/ Reproduce process''' Inside your theme while fetching your comments after {{{ have_comments() }}} try to fetch comments only by using {{{ wp_list_comments( array( ""type"" => ""comment"") ) }}} and then below check if trackback exists and if they do print the trackbacks separately using {{{ wp_list_comments( array( ""type"" => ""pings"") ) }}} Now add a bunch of comments on any of your blog post which also have some trackbacks. Add more than 60 - 70 comments on that post. and from settings enable comment pagination option. So that comments get divided into several comment pages. If you are thinking this is never going to happen in real life, let me tell you I have blog posts which has more than 2.500 comments in it and none of them are spam comments. Now, after you enable the comment pagination, visit your blog page link i.e. example.com/some-post/ and you will see the trackbacks below your comments as it should show up now start navigation through your comment pagination, you will see the following - Trackback is showing on the normal blog post link Trackbacks also showing for /comment-page-1/ But when you will move further from comment page 1 you will only see the heading i.e. Trackback or whatever you have set, but not the actual trackbacks. This problem is also present in genesis theme, earlier I though it was a genesis bug but while developing a non genesis wordpress there I understood that it is actually a wordpress core bug." isaumya 13 Needs Docs or Unit Tests 20597 Allow WP_Comment_Query::query to filter by category Comments 3.4 normal normal enhancement new needs-unit-tests 2012-05-02T03:35:35Z 2019-06-04T19:23:03Z "The attached patch allows WP_Comment_Query::query to accept three additional arguments: * `cat` * `category__in` * `category__not_in` The resulting comments are then filtered by these category arguments as well as any other arguments. These arguments work the same way as their `WP_Query` counterparts. I would appreciate advice on the appropriateness of using `INNER JOIN` (as I have done here) to join in the taxonomy tables to the query." sambauers 2 Needs Docs or Unit Tests 17020 Some comment queries are not filterable Comments 3.1 normal normal enhancement new needs-unit-tests 2011-04-02T16:56:32Z 2019-06-04T19:22:21Z "Although WP_Comment_Query::query() is fully filterable, some supplemental comment queries are still unfilterable. The submitted patch adds the following hooks: * function get_approved_comments() - query filter 'get_approved_comments_query' * function wp_dashboard_recent_comments() - query filter 'dashboard_recent_comments_query'" kevinB 2 Needs Docs or Unit Tests 37653 "customizer sections with 'active_callback' set to 'is_front_page' don't show when ""Front page displays"" ""a static page"" and no page is selected" Customize 3.4 normal normal defect (bug) new needs-unit-tests 2016-08-13T18:02:08Z 2019-06-04T19:41:19Z "When using a theme with customizer sections set up with the ""active_callback"" feature set to ""is_front_page"", when customizing the theme on a blog which has ""Front page displays a static page"" under ""Reading setting"", these sections to not show up when accessing ""Appearance""->""Customize"". The problem appears to be that when running ""Customize"", the WP_Query object is started with an empty string. When the query is empty, then `is_front_page` looks at the value of `get_option( 'show_on_front')` and if it is set to ""posts"" it checks `is_home` - which resolves to `true` when the query is empty. On the other hand, if `get_option( 'show_on_front')` resolves to ""pages"", `is_front_page` then checks `$this->is_page( get_option( 'page_on_front' ) )` which never resolves to true when starting with an empty query. The problem with `is_page` not responding correctly `get_option( 'show_on_front') == ""pages""` is that `WP_Query::__construct()` will not do anything if `empty($query)` and will not run `WP_Query::query()` - which would in turn run `get_posts()` and then `parse_query` only there does `get_option('show_on_front')` gets resolved and `is_page` is set if needed. Tested on 4.5.1, but the code paths I traced exist without change in trunk. I'm running my tests on a mutli-site set up, so that might also contribute to the issue, but not in anyway I managed to detect." Guss77 13 Needs Docs or Unit Tests 37508 wpdb->result instance should be checked `mysqli_num_fields` in `load_col_info()` Database 3.9 normal normal defect (bug) new needs-unit-tests 2016-07-29T07:33:53Z 2019-06-04T19:40:32Z "In `wpdb::load_col_info()` the function `mysqli_num_fields()` is called passing `$this->result` without any check on this property value. The problem is that function has a type hint to `mysqli_result` (see http://php.net/manual/en/mysqli-result.field-count.php), but `$this->result` may be `false`. Just like in other places in the same class, the function should check that `$this->result instanceof mysqli_result` before calling `mysqli_num_fields()`." giuseppe.mazzapica 2 Needs Docs or Unit Tests 31624 $wpdb->prepare() named placeholders Database 4.2 normal normal enhancement new needs-unit-tests 2015-03-13T08:36:52Z 2023-06-22T07:55:03Z "I think it would be handy to add named placeholders to $wpdb->prepare(). The functionality exists in most modern frameworks and cuts out the need for having to worry about the order of variables, (or repetition) in the current vsprint like syntax. What I'm proposing is that the second parameter of prepare() can optionally be an associative array where the $key is the named placeholder and the $value is the value associated with it. This wont affect any existing functionality of prepare() and is fully backwards compatible. If no associative array is passed it will continue to work as always. Patch with the described functionality is attached for testing." ozthegreat 3 Needs Docs or Unit Tests 35109 Add Online DDL support to dbDelta Database normal normal enhancement new needs-unit-tests 2015-12-15T22:24:20Z 2019-06-04T19:33:19Z "Since MySQL 5.1, a bunch of table level operations can be done in an asynchronous manner. We can add support for this by adding `ALGORITHM=INPLACE` to the `ALTER TABLE` query, but the fun part is that this algorithm isn't supported for all types of operations. So, we have a couple of options: * Keep an array of what operations can be done online in each MySQL and MariaDB version, which will need to be updated for each new version of MySQL. * Try all `ALTER` queries with the algorithm flag, then catch any SQL errors and fall back to the old style if needed. This will need careful testing with old versions of MySQL, particularly. https://dev.mysql.com/doc/refman/5.7/en/innodb-create-index-overview.html" pento 3 Needs Docs or Unit Tests 31018 Persistent database connections with mysqli Database 4.2 normal normal enhancement reopened needs-unit-tests 2015-01-14T22:37:39Z 2022-08-01T03:57:30Z "WordPress currently does not allow support for persistent database connections. This can be accomplished by prepending ""p:"" to the hostname with mysqli however with its current configuration WordPress will be confused by the "":"" and think the hostname is actually a port if specified in the wp-config.php file. This patch add support for a constant that allows persistent connections to be turned on or off. Why should this be added to core? Because persistent connections are useful :P. But really, we have seen requests for this in other tickets such as #27933. Additionally I am involved in a project where 10,000+ sites are requiring persistent db connection, not an insignificant number. Persistent db connections are also needed to ensure proper performance on IIS and Azure installations. In short a couple lines of code is all it takes to ensure WordPress continues to work well across other platforms and project requirements. Props to awoods and bradparbs for helping identify the issue and solution." blobaugh 15 Needs Docs or Unit Tests 29938 mysqli_query and multiple resultsets Database 3.9 normal normal enhancement new needs-unit-tests 2014-10-12T10:24:20Z 2019-06-04T19:26:52Z "The WordPress Database API does not expose a way to work with multiple resultsets. Multiple resultsets are returned by queries that have several sets of results available and this is often the case with stored procedures and the usual way is to call {{{next_result}}} and {{{use/store_result}}} on the mysqli connection, however the connection is abstracted away behind the undocumented {{{$wpdb->dbh}}} field. {{{ -- Test procedure for out of sync mysqli commands DROP PROCEDURE IF EXISTS `mysqli_procedure_test`; DELIMITER ;; CREATE PROCEDURE `mysqli_procedure_test`() BEGIN SELECT * FROM `wp_posts` LIMIT 1; SELECT * FROM `wp_posts` LIMIT 1; END;; DELIMITER ; }}} When calling this procedure (apart from the issues outlined in ticket #28155) you can only access the first resultset using the documented APIs. To fetch the second one one would have to use the mysqli API directly. Need to come up with additional public methods to work with these via the Database API instead. There must be a way for a user to fetch the next resultset if there's one, or make this transparent somehow, perhaps using a {{{$wpdb->call( $procedure, $arguments )}}} invocation in the case of procedures? And something like {{{$wpdb->next_results}}} for everything else? Needs brainstorming." soulseekah 2 Needs Docs or Unit Tests 27048 Export: Allow multiple post types to be selected Export 3.8 normal normal enhancement new needs-unit-tests 2014-02-07T09:39:39Z 2022-05-18T16:49:01Z The export tool currently only allows for all post types to be exported, or for only one to be exported. I propose fixing this so that the selection is made via checkboxes and any number of post types can be exported. This will be beneficial in many use cases. hlashbrooke 34 Needs Docs or Unit Tests 16747 'feedtype_enclosure' hooks not triggered without custom field Feeds 1.5 normal normal defect (bug) new needs-unit-tests 2011-03-04T13:42:07Z 2019-06-04T19:43:20Z "file: '''wp-includes/feed.php''', functions: '''atom_enclosure()''' and '''rss_enclosure()''' If a ""enclosure"" custom field is not provided, the ''atom_enclosure'' and ''rss_enclosure'' filters are never triggered (because they're inside an if statement). Wouldn't it make sense to replace this ... {{{ function atom_enclosure() { if ( post_password_required() ) return; foreach ( (array) get_post_custom() as $key => $val ) { if ($key == 'enclosure') { foreach ( (array) $val as $enc ) { $enclosure = split(""\n"", $enc); echo apply_filters('atom_enclosure', '' . ""\n""); } } } } }}} ... with this ... {{{ function atom_enclosure() { if ( post_password_required() ) return; $output = ''; foreach ( (array) get_post_custom() as $key => $val ) { if ($key == 'enclosure') { foreach ( (array) $val as $enc ) { $enclosure = split(""\n"", $enc); $output = '' . '\n'; } } } echo apply_filters('atom_enclosure',$output); } }}} ... so that those functions can be hooked via plugins, even if the custom field doesn't exist? ''In my particular case, I wanted to use a different--already existing--custom field name to pull the url from, but I couldn't hook '''atom_enclosure()''' because '''apply_filters()''' is only triggered if the ""enclosure"" custom field name exists.''" tcloninger 1 Needs Docs or Unit Tests 21753 Feed excerpts are missing important filter formatting Feeds 3.4.1 normal normal defect (bug) new needs-unit-tests 2012-08-31T14:20:56Z 2020-11-17T05:27:18Z "Excerpts included in feeds are missing important formatting because the relevant filters are not applied (e.g. wpautop). In file wp-includes/feed.php, function the_excerpt_rss() does not apply the same filters as the_excerpt() whilst results in lost formatting instructions. By comparison, function the_content_feed() ensures that the same filters declared for the_content() are applied. A suggested patch is attached. Note that for symmetry between the_excerpt_rss() and the_content_feed() this patch also removes the (unnecessary?) filter ent2ncr() from the_excerpt_rss() and retains the (controversial?) escaping for CDATA blocks (see #3670). A few related issues are worth mentioning. Firstly, shortcodes are still not applied to excerpts (see #7093). Also, the (obsolete?) RDF feed does not make use of a CDATA block unlike those for RSS, RSS2 and Atom (see #20888). Finally, a similar problem occurs with comment text in feeds (see #16466)." mdgl 6 Needs Docs or Unit Tests 20888 RDF Feed validation problems. Feeds 3.3.2 normal normal defect (bug) reopened needs-unit-tests 2012-06-08T11:05:19Z 2019-06-04T19:43:51Z "The RDF feed produced by feed-rdf.php produced validation errors due to description either not encoded correctly or not wrapped in CDATA tags. To reproduce view a RDF feed: http://en.blog.wordpress.com/feed/rdf/ To see the validation errors: http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fen.blog.wordpress.com%2Ffeed%2Frdf%2F Attached is a patch to fix this issue. " hootbah 3 Needs Docs or Unit Tests 34128 Tests_Feed_RSS2::test_channel fails when WP_TESTS_TITLE contains an apostrophe Feeds normal normal defect (bug) new needs-unit-tests 2015-10-02T14:12:16Z 2019-06-04T19:52:26Z "If the site configuration contains an apostrophe in the site title, the test_channel unit fails. {{{ 1) Tests_Feed_RSS2::test_channel Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ -'Rob's Test Blog' +'Rob's Test Blog' }}} The happens with either of the following configurations: {{{ define( 'WP_TESTS_TITLE', 'Rob\'s Test Blog' ); }}} and {{{ define( 'WP_TESTS_TITLE', 'Rob's Test Blog' ); }}}" miqrogroove 3 Needs Docs or Unit Tests 28616 ftp_fput should have a retry threshold Filesystem API 3.9 normal normal defect (bug) new needs-unit-tests 2014-06-23T18:27:07Z 2019-06-04T19:45:56Z "In class-wp-filesystem-ftpext.php in put_contents(), ftp_fput() is called to transfer a file to the FTP server. The first problem is that warnings are suppressed, so the user never knows that this is the location where something went wrong. The broader problem is that a single transient network failure between the web server and FTP server causes this call to fail. Well, that would be not a big problem if the user's operation were a single call. However, this function is used by Wordpress auto-upgrade when direct file access fails. For each file in the Wordpress distribution, this function is called to transfer it to the FTP server. As the default Wordpress distribution gets more and more bloated, the number of calls increases proportionally, and the likelihood of at least one FTP transaction failing increases. A single failure aborts the entire Wordpress upgrade. It seems reasonable to at least retry up to (say) three times the ftp_fput() call before returning an error to the higher level and aborting a large process such as Wordpress upgrade which is using FTP as backing for the filesystem abstraction layer." runderwo 3 Needs Docs or Unit Tests 31695 Enclosing oEmbed using `embed_oembed_html` is generating invalid HTML Formatting normal normal defect (bug) new needs-unit-tests 2015-03-19T16:26:12Z 2019-06-04T19:48:18Z "This bug was detected when trying to preview a post that had a Twitter oembed URL. There was no error on the log, and the previewed content was empty ( `the_content()` was printing an empty string ). After some debugging, I found that something was adding an extra `

` and never closing that tag, on the oembed returned markup, right before `

}}} I did some tracing and found out that it was `wpautop` fault. Even though `WP_oEmbed::_strip_newlines()` was successfully stripping the new lines from the returned oEmbed HTML, something was adding an extra newline before the `\s*|', '', $pee ); } }}} Now the oembed is fully functional and doesn't have that unclosed `

` tag: {{{

Lisbon with #WordPressVIP @ Terreiro do Paço http://instagram.com/p/vGw5IchocB/

— Henrique Mouta (@vaurdan) November 7, 2014

}}}" vaurdan 16 Needs Docs or Unit Tests 29956 Paragraphs within list items disappear in the editor when switching from text to visual and back Formatting 4.0 normal normal defect (bug) new needs-unit-tests 2014-10-14T16:42:07Z 2019-06-04T19:46:37Z "On a fresh wordpress 4.0 in the editor when I enter
  1. a

    b

or
  1. a b
and switch from text to visual and back, I get
  1. ab
" brunni 4 Needs Docs or Unit Tests 25785 Unexpected Paragraph Formatting Within a Div Container Formatting 3.7 normal normal defect (bug) new needs-unit-tests 2013-10-31T02:01:15Z 2019-06-04T19:44:59Z "Though HTML mode in WordPress allows for the user to add in their own CSS styling and HTML content formatting if necessary, its normal behavior also makes it auto-format paragraph breaks without the user's input of paragraph tags. This is EXPECTED behavior. I have discovered that in this specific manner of formatting when writing a post or page (note the LACK of spacing between the div tag and the content and the multiple paragraphs): {{{
Insert FIRST PARAGRAPH here. Insert SECOND PARAGRAPH here.
}}} The end result (both visually and looking at the source code) is that there is a MISSING opening paragraph tag at the beginning of the first paragraph right after the opening div tag. IF the user adds their own spacing between the divs and the content, paragraph formatting with happen on its own, but if the user doesn't add in the spacing and starts the paragraphed content right after the div like in the example above, the first paragraph tag isn't automatically added in. For a screenshot of the end result source code that is generated (with the missing opening paragraph tag), please see the attached file. Cheers!" EMG 3 Needs Docs or Unit Tests 20368 htmlspecialchars() returns empty string for non-UTF-8 input in PHP 5.4 Formatting normal major defect (bug) new needs-unit-tests 2012-04-05T12:43:23Z 2019-06-04T19:43:43Z "The default value of the input `$encoding` parameter for `htmlspecialchars()` changed to UTF-8 in PHP 5.4. The prior default was ISO-8859-1. The function's UTF-8 handler checks the input, returning an empty string if the input isn't valid UTF-8. WordPress will see the UTF-8 validator kicking because most of the `htmlspecialchars()` calls don't use the `$encoding` parameter. This will cause major problems for sites that have a `DB_CHARSET` other than `utf8`. [http://article.gmane.org/gmane.comp.php.devel/71783 Posting 58859 to php-internals] by Rasmus gives a clear example of the problem. Here is a link to [http://thread.gmane.org/gmane.comp.php.devel/71777 view the whole thread], starting with posting 58853). Creating two centralized functions is an approach for resolving this problem. This route is simpler and easier to maintain than adding the parameters to each `htmlspecialchars()` call throughout the code base. 1. `wp_hsc_db()` for safely displaying database results. Uses `DB_CHARSET` to calculate the appropriate `$encoding` parameter. MySQL's character set names are not equivalent to the values PHP is looking for in the `$encoding` parameter. Please see the `hsc_db()` method in the [http://plugins.svn.wordpress.org/login-security-solution/trunk/login-security-solution.php Login Security Solution plugin] for a mapping of the valid options. 2. `wp_hsc_utf8()` for safely displaying strings known to be saved as UTF-8, such as error messages written in core. Uses `UTF-8` as the `$encoding` parameter. Some calls in core use the `$flags` parameter, so these new functions will need the parameter too. The default should be `ENT_COMPAT`, which works under PHP 5.2, 5.3 and 5.4. It may be suggested that WP use `htmlspecialchar()`'s auto-detection option (by passing an empty string to the `$encoding` parameter). This is not advisable because it can produce inconsistent behavior. Even the PHP manual says this route is not recommended." convissor 7 Needs Docs or Unit Tests 30597 wp_filter_post_kses mangles URLs with colons in them Formatting 4.0 normal normal defect (bug) new needs-unit-tests 2014-12-04T18:34:40Z 2019-06-04T19:46:57Z "Try to save this entirely valid post content: {{{ watch what happens }}} The KSES logic is overly aggressive and strips the URL. It's getting confused by the colon. Might be related to #24663" rkaiser0324 5 Needs Docs or Unit Tests 10033 wpautop problems with html comments and object tags Formatting 2.8 normal minor defect (bug) new needs-unit-tests 2009-06-04T12:06:35Z 2019-06-04T19:42:36Z "Bumped into this one when upgrading my mediacaster plugin to use swfobject 2.1 (which is not 1.5 compatible), as documented here: http://code.google.com/p/swfobject/wiki/documentation I take it I'm not the only one who is going to need to upgrade a plugin. It's minor, since I'll just move the filter further down in the queue, but it's still worth reporting: {{{

Get Flash 9.0 to see this player.

}}} Gets turned into the following mess: {{{

Get Flash 9.0 to see this player.



}}} So, two/three issues: - wpautop should also ignore double object tags, and html comments - wptexturize should ignore html comments" Denis-de-Bernardy 10 Needs Docs or Unit Tests 27733 wpautop(): \s in regex destroys some UTF-8 characters Formatting 0.71 normal major defect (bug) new needs-unit-tests 2014-04-09T09:17:39Z 2022-01-18T13:48:21Z "\s in preg_replace() incorrectly targets some UTF-8 characters. '''Steps to reproduce:''' 1. Create a post with {{{ ム new line }}} as a content. 2. It will be output as {{{


new line

}}} '''Quick Test:''' {{{ $pee = ""

ム\n""; $pee = preg_replace('|(?)\s*\n|', ""
\n"", $pee); echo $pee; // outputs


\n }}} '''Solution:''' Use [\r\n\t ] rather than \s." tenpura 9 Needs Docs or Unit Tests 29913 wptexturize should handle broken HTML consistently Formatting 1.5 normal minor defect (bug) new needs-unit-tests 2014-10-10T00:38:40Z 2019-06-04T19:46:35Z "Spunoff from ticket:29557#comment:93 because it's not that important. When encountering broken HTML, `wptexturize()` should match web browser behavior, without getting too complicated. This bug is for: 1. unclosed comments: `"" HTML comments, probably to be safe as not all Browsers understand them. When using Wordpress 2.9.1 on a site with an international domain name [1] that contains special characters like German ""Umlauts"" like äöü, this domain name is written as e.g. xn--tst-qla.de for täst.de. Now the output of trackback_rdf() suddenly gets a ""--"" which is the SGML/HTML comment separator mark [2]. Firefox 3.5.6 e.g. sees this as the end of the comment and therefore shows the final ""-->"" as text to the user. As the whole RDF tag is supposed to be invisible for the user, it's a bug in Wordpress :-( Here is an real world example output: {{{

}}} Sadly I have not yet come up with a solution. PHPs urlencode() does not escape a double dash - which is ok as its usually perfectly valid. Maybe someone with RDF experience has a good idea. bye, -christian- [1] http://en.wikipedia.org/wiki/Internationalized_domain_name#Example_of_IDNA_encoding [2] http://htmlhelp.com/reference/wilbur/misc/comment.html " lathspell 7 Has Patch / Needs Testing 20302 Allow comment_form() to add attributes to
tag Comments 3.3.1 normal normal enhancement new has-patch 2012-03-25T15:48:53Z 2019-06-04T19:22:55Z "The standard method to allow Google Analytics to track comment submissions as a 'goal' is to add a piece of JavaScript code wrapped in an 'onsumbit' attribute: http://www.optimisationbeacon.com/analytics/track-blog-comments-in-google-analytics/ http://code.google.com/apis/analytics/docs/tracking/eventTrackerGuide.html We want something like the following: {{{ }}} However the current arguments submitted to comment_form() do not provide for adding attributes to http://codex.wordpress.org/Function_Reference/comment_form I was forced to perform a workaround in which the onsubmit code was inserted by JavaScript on the fly at runtime. So this is request to alter comment_form() such that arguments accepted provide for 'onsubmit' or other custom attributes to be appended on the tag." psbook 10 Has Patch / Needs Testing 20487 Comment search isn't customizable Comments 3.2.1 normal normal enhancement new has-patch 2012-04-18T23:32:07Z 2019-06-04T19:23:01Z "*cross-posted to the wp-hackers mailing list last night* I work on a large news oriented WP site and first off, it actually scales remarkably well. We keep users, comments, and actual posts all in WordPress. However, due to our size, administering comments is causing us issues at the moment. Our last outage was caused by one of our comment moderators doing a simple comment search in the admin. The query took 16 seconds to execute, the next query locked, and, with our traffic, the DB couldn't handle the resulting queued traffic. Staying away from discussions of ""you should use Disqus"" or, ""you need more X for your mysql server,"" I think there is significant opportunity to improve the way WP handles comment searching. Every comment search takes the following form: SELECT * FROM wp_comments WHERE ( comment_approved = '0' OR comment_approved = '1' ) AND (comment_author LIKE '%TERM%' OR comment_author_email LIKE '%TERM%' OR comment_author_url LIKE '%TERM%' OR comment_author_IP LIKE '%TERM%' OR comment_content LIKE '%TERM%') ORDER BY comment_date_gmt DESC LIMIT #; As we can all see, this is a beast of a query. Even when the term is clearly an specific term (say an email or IP), or when the intent of the admin is known (e.g. clicking the IP link on a specific comment). Furthermore, there are no hooks activated in this process for plugins to use to say create an advanced comment search plugin. One might expect hooks like those activated in post search to be activated here, like ""parse_request"" and ""get_search_query."" Waxing philosophical, as posts, comments, and users are the three basic types of data to be stored and displayed in WP, one would expect them to have similar interfaces and functionality. They each have basic functionality of being able to retrieve a single item, a list (in full or in part), search for an element, or edit a single entry. For this reason I don't understand why each of their functionality isn't derived from something like an abstract class or an interface. The architecture here is also difficult in that you are not able to replace or extend a single class to change the functionality. Back on target. I propose that we add functionality by which we'll be able to search by exact match in addition to the existing full wildcard (left, right, or full wildcard is probably excessive) as well as specifying the field to search. This would allow my earlier use case of searching by IP to look for an exact match in the ""comment_author_IP"" field only, not searching the fulltext of every comment. This functionality can be created simply by: 1. Adding ""search_type"" and ""search_field"" to the WP_Comment_Query::query_vars data structure in wp_includes/comment.php 2. Replacing WP_Comment_Query::get_search_sql with something more robust, able to understand these new properties and construct the query on their basis 3. Upgrading WP_Comments_List_Table::prepare_items to accept the new queries and add them to the data structure it creates 4. Either modifying WP_List_Table::search_box to have some options of advanced search, or dropping a hook so that a plugin can easily modify it 5. Modifying the WP_Comments_List_Table::column_author to supply the correct query string to indicate an IP search If I can figure out a way to make this more similar to the signature of posts and users, or at least add some hooks at the right places, I can do that as well. This will add efficiency for everyone--particularly those who have lots of comments. I modified our core for this functionality today and we will fully QA it tomorrow. I made it on 3.2.1 as that is what we're running right now, and there are minimal changes in the affected files and functions between 3.2.1 and 3.3.1 and even the nightly. I can submit a patch as long as it passes our QA--how should I do that, off the nightly? Thanks, -Kenton Jacobsen" brokentone 22 Has Patch / Needs Testing 23233 Radio Button instead of Checkboxes on Comment Moderation option? Comments 3.5 normal normal enhancement reopened has-patch 2013-01-18T16:26:23Z 2019-06-04T19:23:51Z "Hi! I've been a loyal Wordpress user for years. This is nothing urgent, but something that may improve the user experience. In Settings > Discussion > Before a comment appears, there are two options: ""An administrator must always approve the comment "" and ""Comment author must have a previously approved comment"" Perhaps I have missed something here, but aren't these options pretty much either/or? If the first box is checked, it's rather irrelevant if the second box is checked, because the first checkbox would override it? If I'm correct, shouldn't this be changed from a both/and checkbox to an either/or radio button?" danielmount 12 Has Patch / Needs Testing 22198 Realigning the Discussions Settings page chriscct7 Comments 3.4.2 normal normal enhancement assigned has-patch 2012-10-15T14:50:34Z 2019-06-04T19:23:31Z "[I looked for some tikets for this but didn't find any directly related, so hopefully I haven't missed a big one out there floating around.] The Discussions Settings page (options-discussion.php) always trips me up when setting up a new site. There's a lot of options, descriptions, directions, etc on that page — much of which is probably unavoidable. When I visit it, I always think that the hierarchy isn't quite right. To help with this, I thought of two half-measures. 1. A very simple solution: Put the ""Allow people to post comments on new posts"" at the top of the options list, with a little space below it. That would make that option the most prominent on the page, without making it stand out too much. Like this: [[Image(http://f.cl.ly/items/3e0c062W0N1l3J2D0q0Y/Screen%20shot%202012-10-15%20at%2011.56.02%20AM.png)]] 2. A more involved solution: I really like the new click-to-reveal-the-options at work in the ""Page on Front"" (#16379) workflow and thought it might work well here. *Something* in this direction: [[Image(http://f.cl.ly/items/022A1G3k0O3q0g1u380L/Screen%20shot%202012-10-15%20at%2012.12.09%20PM.png)]] The first could be accomplished for 3.5, but the second re-working could be a further down the line item. " saltcod 9 Has Patch / Needs Testing 16576 comment_form() fields being displayed only for non logged in users Comments 3.0.5 normal normal enhancement new has-patch 2011-02-16T18:15:44Z 2019-06-04T19:22:16Z "I've just noticed this - When using the '''comment_form()''' function and adding some comment meta fields,using the fields array in the $args, these fields are being showed in the front-end only for non logged in users. In this case, the registered users can never use these comment fields. Look at wp-includes/comment-template, lines 1561-1573 (WP 3.0.5), it parse the $args['fields'] in the else block - {{{ $field ) { echo apply_filters( ""comment_form_field_{$name}"", $field ) . ""\n""; } do_action( 'comment_form_after_fields' ); ?> }}} I think it is better that added meta fields should be displayable for all users (logged in and not logged in), or even to add a parameter to let the developer decide which extra fields are shown to logged or not logged users. " maorb 11 Has Patch / Needs Testing 34690 when user login is required to comment, there should be a link to registration Comments normal normal enhancement new has-patch 2015-11-15T19:12:17Z 2019-06-04T19:33:05Z "Right now when user login is required the login form only shows a message about the need to login, but if registration is open, there is no reason not to send the visitor directly to the registretion page. At the very least the default text of the link to the login page should be changed to some thing like ""Login or Register"" when registration is open." mark-k 4 Has Patch / Needs Testing 21834 Comment History Comments normal normal feature request new has-patch 2012-09-07T20:30:47Z 2021-11-07T21:35:36Z "This ticket provides a simple patch for comment history in core. ''The Problem'': In at least a few places: ([comment:ticket:9117:10], [comment:ticket:15534:4], [comment:ticket:9495:3]) Nacin has mused about the desirability of introducing comment history to core, citing Akismet’s implementation as a model for how this might be done. There are good reasons for wanting this, as comment history could serve as a solid underpinning for a variety of other features such as more informative moderation emails, some indication of why a message was marked as spam, and even comment versioning. The idea is that to implement any of that, we really should have basic comment versioning in core, a la Akisment. ''The Solution'': Our goal was to expand the API so as to reproduce and streamline the basic history functionality provided by Akismet, port and tweak Akismet’s nice history UI, and keep the change set minimal. Comment history API: * added simple functions to /wp-includes/comment.php to get and update comment history. These in turn use existing comment_meta functions. UI: * there’s now a comment history meta box on the comment edit screen. It looks just like Akismet’s. This was implemented as a real meta box. A sorting function is also included. History Events: * this patch supports the following history events, each of which has a nice, plain-english (internationalizable) history message, which always includes the user responsible for the action and a timesince. * edit_comment (“edited by user”) * trashed_comment (“trashed by user”) * untrashed_comment (“un-trashed by user”) * comment_unapproved_to_approved (“user approved this comment”) * comment_approved_to_unapproved (“user unapproved this comment”) * spammed_comment (“user marked this comment as spam”) * unspammed_comment (“user marked this comment as ham”) ''Next steps'': Here’s what we’d think of doing next if this were to be introduced into core: * support more history events and provide more detail. In particular, support events where the comment is spammed as a result of a blacklist word or other reason. * include some of this detail in moderation emails ''Note'': * the Akismet plugin should be updated to use this new API instead of its own history functions * meta boxes on edit comment did not work properly until this: http://core.trac.wordpress.org/ticket/21499 (in 3.5) ''Who we are'': This patch comes from [http://profiles.wordpress.org/bbrooks Ben Brooks], [http://profiles.wordpress.org/mattoperry Matt Perry] and [http://profiles.wordpress.org/natebot Nathan Letsinger]. Enjoy" mattoperry 7 Has Patch / Needs Testing 13103 """Unknown character set"" during install into database reports successful install." barrykooij Database 3.0 normal normal defect (bug) assigned has-patch 2010-04-24T15:10:23Z 2019-06-04T19:21:49Z "During editing of the wp-config.php, I changed {{{ define('DB_CHARSET', 'utf8'); }}} to {{{ define('DB_CHARSET', 'utf8_general_ci'); }}} Which I thought was valid. After clicking ""Install Wordpress"" I got a page full of: {{{ WordPress database error: [Unknown character set: 'utf8_general_ci'] }}} And at the bottom, ""Success"" with a login prompt, but nothing was actually created in the database. I think WP shouldn't report a successful install if the user happened to accidentally change this value (or another) during install as it would cause confusion. I used a svn checked out version of WP on 2010-04-24 on my local computer using PHP5 and apache2, but I think this is really a problem since 2.6 (or when the current install system was implemented)." MECU 10 Has Patch / Needs Testing 34872 dbDelta Missing Index Name Creates Duplicate Indexes Database 3.5.1 normal normal defect (bug) new has-patch 2015-12-06T18:00:25Z 2019-06-04T19:33:14Z "Reference ticket #10404. This is to decompose the original ticket into components. May be fixed in 4.4. Needs testing. ---- Creates duplicate indexes: {{{ create table x ( id mediumint(8) not null autoincrement, KEY (id) ) }}} Does not create duplicate indexes: {{{ create table x ( id mediumint(8) not null autoincrement, KEY id (id) ) }}} " charlestonsw 3 Has Patch / Needs Testing 26788 Improve dbDelta fields match Database 3.8 normal normal enhancement reopened has-patch 2014-01-07T12:12:19Z 2019-06-04T19:24:49Z Sometimes plugin authors use multiple spaces between the field name and type rather than a single space when using dbDelta, small change to the regex to stop this producing unnecessary alter queries. pollett 1 Has Patch / Needs Testing 31599 White space between visual editor content and status bar Editor 4.1 low normal defect (bug) new has-patch 2015-03-11T18:55:56Z 2019-06-05T06:52:53Z Happens when the 'path' is hidden. iseulde 4 Has Patch / Needs Testing 24712 Get errors from wp_oembed_get Embeds 3.5.2 low normal enhancement new has-patch 2013-07-08T19:23:44Z 2019-06-04T20:01:26Z "Would it be possible to add error collection to the oEmbed class? It would be more useful to provide a helpful error when a remote oEmbed source is not available rather than a generic ""there was an issue"". As an example, if you try to use wp_oembed_get() on a YouTube video that is not allowing embedding, plugins (and/or WP itself) would have the option of returning a specific error: ""The requested video doesn't not allow for embedding""." slushman 4 Has Patch / Needs Testing 29621 Export post title with markup Export normal normal defect (bug) new has-patch 2014-09-11T08:04:25Z 2019-06-04T19:46:25Z "The Theme Unit Test data includes a post [http://wpthemetestdata.wordpress.com/2013/01/05/markup-title-with-markup/ Title With Markup]. However, the current exporter filters the post titles with `the_title_rss`, which has `strip_tags` hooked to it, so it always needs fixing up after importing. The content and excerpt blocks of the export are uniquely filtered with `the_content_export` and `the_excerpt_export`, and **not** `the_content_rss` and `the_excerpt_rss`. Attached is a patch which changes the exporter from using `the_title_rss` to a new `the_title_export` filter, and wraps the output in CDATA tags, as per content and export blocks. Advantages: * Unique filter for handling post titles during export. * Fixes stripped tags issue. * Filter name that is consistent with other filters in that context. * Use of `wxr_cdata()` for consistency with other blocks of output in that context. Disadvantage: * Backwards-incompatibility - applying a filter to `the_title_rss` thinking it would also apply to exports would no longer work. There are no [https://core.trac.wordpress.org/browser/trunk/tests/phpunit/tests/export un-skipped unit tests] in place for testing the exporter so I've not included any here." GaryJ 2 Has Patch / Needs Testing 20903 Exporter gets stuck in a loop a loop/break in the category hierarchy westi Export 3.1 normal normal defect (bug) new has-patch 2012-06-11T11:26:07Z 2019-06-04T19:43:53Z "Ideally it should be impossible for a loop/incorrect parentage in a category hierarchy to exist. But sometimes they do. If one does exist then {{{export_wp()}}} gets stuck :( It gets stuck in this code: {{{ // put categories in order with no child going before its parent while ( $cat = array_shift( $categories ) ) { if ( $cat->parent == 0 || isset( $cats[$cat->parent] ) ) $cats[$cat->term_id] = $cat; else $categories[] = $cat; } }}} Similar to #20635 but different." westi 3 Has Patch / Needs Testing 14584 HTML entities in category and tag elements Export 2.1 normal normal defect (bug) reopened has-patch 2010-08-11T05:47:13Z 2020-07-06T10:53:49Z "The script wp-admin/includes/export.php creates CDATA blocks for category and tag data which contain HTML entities. Normally, these characters should appear un-encoded in the CDATA blocks, see #4321. I suspect this problem may have been considered at some point, but currently the line in question is commented out : http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/export.php?rev=9148#L102 The solution, I think, would be to replace that comment with html_entity_decode($str) " lavamind 4 Has Patch / Needs Testing 28146 Export Filter for Post IDs Export 2.1 normal normal enhancement assigned has-patch 2014-05-06T10:47:48Z 2019-06-04T19:45:46Z "I know there is an action hook '''export_wp''' we can use to create our own export function for custom post queries. The idea is to apply filters for the $post_ids at wp-admin\includes\export.php line 87 {{{ $post_ids = $wpdb->get_col( ""SELECT ID FROM {$wpdb->posts} $join WHERE $where"" ); }}} to {{{ $post_ids = apply_filters( 'export_post_ids', $wpdb->get_col( ""SELECT ID FROM {$wpdb->posts} $join WHERE $where"" ) ); }}} so we can do custom post queries to generate the post id(s). " zourbuth 18 Has Patch / Needs Testing 14363 Atom feed is broken when WordPress is served as application/xhtml+xml Feeds 3.0 normal normal defect (bug) new has-patch 2010-07-20T14:57:52Z 2019-06-04T19:43:04Z "Atom feed is broken when WordPress is served as application/xhtml+xml because of the difference in html_type_rss(). The patch attached also deprecates the_excerpt_rss() with a new function called 'the_excerpt_feed'." peaceablewhale 5 Has Patch / Needs Testing 10984 If content uses the nextpage tag then only the first page is shown in feeds Feeds 2.8.4 normal normal defect (bug) assigned has-patch 2009-10-20T11:03:11Z 2019-06-04T19:42:43Z "If content uses the nextpage tag then only the first page is shown in feeds if the ""full text"" option is selected in ""Settings > Reading > Show Full Text (in feed)"". No links are displayed to read the full content and no indication is given in the feed that it isn't the full content. I think the behaviour should be to ignore pagination in feeds which are set to ""full text"". I have attached a patch which alters the behaviour of the_content() so that if it is used in the context of a feed it concatenates the pages to form the full content and returns that." simonwheatley 42 Has Patch / Needs Testing 9993 Rss and atom feeds are dropping some characters stevenkword Feeds 2.7.1 normal normal defect (bug) assigned has-patch 2009-05-31T23:54:40Z 2019-06-04T19:42:35Z "Blog post with title: {{{ & > test < }}} has the less than ( < ) is stripped from the atom and rss feed. " pm24601 25 Has Patch / Needs Testing 31935 is_page() erroneously set to true when loading /feed/ associated with 404 Feeds 4.0 normal normal defect (bug) new has-patch 2015-04-08T21:51:00Z 2019-06-04T19:48:39Z "r29216 changed feeds to never send a 404 status header. This had the unintended consequence of changing the behavior of some internals. A request to the feed associated with a missing page (e.g. `/missing-page/feed/`) will match the rewrite rule for a page and set `is_page == true`. I'd expect WordPress internals to still understand this request as `is_404`" danielbachhuber 4 Has Patch / Needs Testing 26530 Unnecessary database requests and untidy code in do_enclose Feeds 3.8 normal normal enhancement new has-patch 2013-12-11T02:05:39Z 2019-06-04T19:45:12Z "The function do_enclose in wp_includes/functions.php is 62 lines long with up to 8 levels of intendation, and begins with the comment {{{ //TODO: Tidy this ghetto code up and make the debug code optional }}} The single biggest problem of this code might be that it unnecessarily asks the database if links are referenced as enclosures or not for the current post, once for every new link. {{{ foreach ( (array) $post_links as $url ) { if ( $url != '' && !$wpdb->get_var( $wpdb->prepare( ""SELECT post_id FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = 'enclosure' AND meta_value LIKE (%s)"", $post_ID, like_escape( $url ) . '%' ) ) ) { }}} This information is already available through $pung, {{{ $pung = get_enclosed( $post_ID ); }}} do_enclose also always uses extension guessing to determine the mime type of a link, even when there is header information available. Bad naming of variables and bad separation of tasks makes the workings this function difficult to grasp." joakimf 3 Has Patch / Needs Testing 11585 WordPress should cache failed feed fetches so as to avoid overloading feed sources pbearne Feeds 2.9 normal normal enhancement assigned has-patch 2009-12-24T02:25:17Z 2024-02-22T23:43:57Z "Following up on #11219, which fixed the cause of that particular error, but not the one that related to caching of feed errors. When SimplePie fails to fetch or parse a feed, it should not hammer whichever server the feed came from on every page load. This is bad for two reasons: it disturbs the originating server, and it tremendously slows down page loads when the feed is in an RSS widget on the front end. Instead, we should cache the error for a reasonably long amount of time (15 minutes? An hour? More?) and bypass SimplePie until that duration expires." Denis-de-Bernardy 9 Has Patch / Needs Testing 20716 Control how and when request_filesystem_credentials outputs creds form dd32 Filesystem API 3.4 normal normal enhancement assigned has-patch 2012-05-21T02:02:08Z 2019-06-04T19:43:49Z "When using WP_Filesystem in a plugin or other external app, you can initialize it this way: {{{ if ( false == ( $creds = request_filesystem_credentials( $url, $method, false, false, $form_fields ) ) ) { return true; } }}} Makes sense. If the method isn't direct or we don't have the credentials we need, `request_filesystem_credentials` outputs a form and returns false. Then we check again to make sure the credentials can be verified, and it not, we continue to output the form until the credentials are good. {{{ if ( ! WP_Filesystem( $creds ) ) { request_filesystem_credentials( $url, $method, true, false, $form_fields ); return true; } }}} `request_filesystem_credentials` arbitrarily outputs the form whether you want it to or not, unless you explicitly filter the `request_filesystem_credentials` function itself. Using this in conjunction with Ajax, you have to use output buffering to catch the output and return it to the Ajax script for processing or else you get errors. This definitely isn't ideal. I'd suggest storing the form in a variable and possibly pass a parameter that determines whether or not we want to actually output the form or not. Or, if there is another (better) way, that's cool too. Just some way to help `request_filesystem_credentials` determine how we want to interact with credentials should we need them. " griffinjt 5 Has Patch / Needs Testing 10823 Bad handling of ampersand in post titles Formatting 2.8 normal normal defect (bug) new has-patch 2009-09-21T10:59:50Z 2019-06-04T19:42:39Z "Titles with ampersand (&) are not correctly handled:[[BR]] 1/ the_title_attribute() doesn't transform & to & causing XHTML validation errors[[BR]] 2/ titles with & followed by ; generate truncated post name (slug) e.g. ""Test this & believe ; what ?"" => ""test-this-what""" Commeuneimage 17 Has Patch / Needs Testing 25021 Improve sanitize_title_with_dashes % removal Formatting 1.5 normal normal defect (bug) new has-patch 2013-08-13T11:45:00Z 2019-06-04T19:44:51Z "The current method of % removal involves placeholders to prevent stomping on escape sequences: {{{ // Preserve escaped octets. $title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title); // Remove percent signs that are not part of an octet. $title = str_replace('%', '', $title); // Restore octets. $title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title); }}} This leads to `sanitize_title_with_dashes('---aa---')` producing `%aa` instead of just `aa`. [2189]" duck_ 5 Has Patch / Needs Testing 33629 Post excerpts have become WAY too long after updating to WP 4.3, please fix. Formatting 4.3 normal normal defect (bug) new has-patch 2015-08-31T19:08:30Z 2019-06-04T19:51:08Z "I believe this is a bug in the new WP release. After updating, all my websites are in chaos because the post excerpts have become way too long and most themes were not designed to handle it. I'm not the only one to notice this: [https://wordpress.org/support/topic/excerpts-become-full-of-content?replies=14] One user said ""WP 4.3 seemed to have changed trunctation from '''characters to words'''."" Here's an example of my website before 4.3: [[Image(http://i.imgur.com/gUrUhYZ.jpg)]] and now after 4.3: [[Image(http://i.imgur.com/II5l12g.jpg)]]" MarineKingAizen 9 Has Patch / Needs Testing 37077 Replacing one variable handler for another to ensure proper conditional check occurs 100%. Formatting 4.5.2 normal trivial defect (bug) reopened has-patch 2016-06-11T23:18:57Z 2019-06-04T19:59:27Z "I have a likely non-reproduceable problem that, nonetheless, still indicates a failure of a conditional check in wp-class.php. I'd been receiving log file non-critical php errors/warnings for months referencing the rawurlencode() on line 528 getting an array variable. Which is not allowed for that function, hence the error. When I changed line 526's conditional check from {{{ if ( !is_scalar($this->query_vars[$wpvar]) ) }}} to {{{ if ( ( !is_scalar($this->query_vars[$wpvar]) || is_array($this->query_vars[$wpvar]) ) ) }}} the errors went away. Bad plugin/theme code, notwithstanding, the fact that the conditional check fails at all indicates a need for ""refinement"". That's the whole point of these checks, to ensure bad code doesn't take down a website. I'm even wondering if a more streamlined code change for line 526 to {{{ if ( !is_string($this->query_vars[$wpvar]) ) }}} is more appropriate as string variables are all that rawurlencode() allows. I hated changing any core file. But, I was able to quickly address a small issue that shouldn't have been allowed by the core. I don't think this change would impact anyone, the function build_query_string() this code falls within has been depreciated, anyway. BTW, I'm not sure why is_scalar() is failing. However, I came across a few instances across the web with similar quirks. Everyone of those problems was addressed in a similar fashion (i.e. using is_array() or !is_string() instead of !is_scalar()). Source code from wp-class.php: {{{ 521 public function build_query_string() { 522 $this->query_string = ''; 523 foreach ( (array) array_keys($this->query_vars) as $wpvar) { 524 if ( '' != $this->query_vars[$wpvar] ) { 525 $this->query_string .= (strlen($this->query_string) < 1) ? '' : '&'; 526 if ( !is_scalar($this->query_vars[$wpvar]) ) // Discard non-scalars. 527 continue; 528 $this->query_string .= $wpvar . '=' . rawurlencode($this->query_vars[$wpvar]); 529 } 530 } }}}" chadschulz 4 Has Patch / Needs Testing 26674 The get_tag_regex() function is a too greedy when searching for a closing tag. Formatting 3.9 normal normal defect (bug) new has-patch 2013-12-18T20:57:31Z 2019-06-04T19:45:13Z "At its current state, the get_tag_regex() function is a too greedy when searching for a closing tag. This causes content with more than one of the same media tag (e.g iframe followed by an iframe) to be grouped together as one value, with the content between in that value. This patch, while lazier, makes the regex function as expected." kopepasah 9 Changes Requested 31992 Unicode Email Addresses Formatting normal normal defect (bug) new changes-requested 2015-04-16T14:08:51Z 2023-10-02T22:00:04Z "Tested against trunk (2015-04-16) '''Test case''' {{{ $target_email = 'dummy-üñîçøðé.y.!#$%@üñîçøðé.gmail.com'; echo $target_email.'
'; echo sanitize_email($target_email).'
'; echo 'is_email : '.is_email($target_email); }}} '''Return''' {{{ dummy-üñîçøðé.y.!#$%@üñîçøðé.gmail.com dummy-email.y.!#$%@gmail.com is_email : }}} Function is_email @ /wp-includes/formatting.php line 2177 Preg_replace @ line 2211 is not correct. {{{ if ( !preg_match( '/^[a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]+$/', $local ) ) { }}} Function sanitize_email() @ /wp-includes/formatting.php line 2430 Preg_replace @ line 2460 is not correct. {{{ $local = preg_replace( '/[^a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]/', '', $local ); }}} " ysalame 15 Has Patch / Needs Testing 27270 Validation for leading/trailing periods, or consecutive periods in email addresses is only done on the domain section Formatting 2.7 normal normal defect (bug) new has-patch 2014-03-04T10:34:51Z 2019-06-04T19:45:29Z "WordPress valids that the domain portion of the email address (after the @) doesn't have leading or trailing periods, or more than one period consecutively, but the same check isn't done on the portion before the @. This means that the following email addresses validate: .name@email.com name.@email.com first..last@email.com The attached patch will resolve this, although it might need a little refactoring to deal with the duplication in trimming periods and whitespace." scruffian 7 Has Patch / Needs Testing 17923 add_query_arg() should encode values Formatting 3.2 normal normal defect (bug) reopened has-patch 2011-06-28T22:55:50Z 2019-08-20T23:16:59Z "One (or me at least) would expect that the result of {{{ add_query_arg( 'foobar', 'this&that', 'index.php' ) }}} would be {{{ index.php?foobar=this%26that }}} since the whole purpose of the function is to build a URL. However the actual result is {{{ index.php?foobar=this&that }}} You're asking to the function to create a URL in which `foobar` is `this&that` but instead it creates a URL in which `foobar` is set to only `this`. You shouldn't have to pre-encode values -- the function should take care of it for you. The function to ""blame"" for this is our `build_query()` which for some reason does not encode by default. Semi-related: #16943" Viper007Bond 22 Has Patch / Needs Testing 25108 is_email() function validates email with domain that just has 1 character after dot Formatting 3.6 normal normal defect (bug) new has-patch 2013-08-21T09:03:48Z 2019-06-04T19:44:52Z "is_email() function validates an email address that has domain name extension of just 1 character. I am not sure if there are any domains with just 1 character after. To Test I used below code: {{{ }}}" hchouhan 5 Has Patch / Needs Testing 18549 wp_texturize incorrectly curls closing quotes after inline HTML end tags miqrogroove Formatting 3.2.1 normal normal defect (bug) assigned has-patch 2011-08-30T21:54:26Z 2023-08-18T07:21:04Z "The following source HTML: {{{ The word is ""quoted"". The word is 'quoted' The word is 'quoted.' The word is 'quoted'. The word is 'quot'd }}} Gets incorrectly transformed by wp_texturize() as: {{{ The word is “quoted“. The word is ‘quoted‘ The word is ‘quoted.‘ The word is ‘quoted‘. The word is ‘quot‘d }}} '''Note:''' all the double/single quotes in the above examples that should be closing are instead opening) This renders in the browser like this: {{{ The word is “quoted“. The word is ‘quoted‘ The word is ‘quoted.‘ The word is ‘quoted‘. The word is ‘quot‘d }}} The problem here is that wp_texturize splits the text on all start/end tags, which makes sense for block-level tags, but not inline-tags like {{{}}} and {{{}}}. formatting.php line 67: {{{ $textarr = preg_split('/(<.*>|\[.*\])/Us', $text, -1, PREG_SPLIT_DELIM_CAPTURE); }}} However if you change it to only split the content on block-level tags, you'll need something more sophisticated/complex than a regular expression to avoid curling quotes within html." justincwatt 33 Has Patch / Needs Testing 29882 wptexturize: quotes inside quotes curling incorrectly Formatting 1.5 normal normal defect (bug) new has-patch 2014-10-08T01:43:48Z 2019-06-04T19:46:32Z "I've been looking through Trac a bit, but couldn't find a ticket reporting this problem. When you use quotes inside quotes, this happens: {{{ bad: ‘”…” …’ }}} {{{ bad: ‘… “…”‘ }}} {{{ good: “‘…’ …” }}} {{{ bad: “… ‘…'” }}}" iseulde 8 Has Patch / Needs Testing 12084 allow preserving HTML in the_excerpt (specify allowed tags for strip_tags in wp_trim_excerpt) Formatting 3.0 normal normal enhancement new has-patch 2010-01-29T22:36:40Z 2019-06-04T19:42:50Z Right now, `wp_trim_excerpt` is destructive. You can filter it, but once tags are stripped, you can't get them back without recreating the excerpt from the raw input. It would be nice if theme developers had an option to preserve at least some of the HTML formatting when using excerpts as post teasers (see #9260). sillybean 2 Has Patch / Needs Testing 30613 Check the return value of wp_json_encode() General 4.1 normal normal defect (bug) new has-patch 2014-12-06T10:08:13Z 2019-06-04T19:47:01Z "It's possible for `wp_json_encode()` to return `false`, same as `json_encode()`. Everywhere in core, this will cause either invalid JS to be produced, or invalid JSON to be returned to an ajax call. We need to sanity check the return value, and switch `false` for an appropriate response. This ticket is branched from discussion in #28786." pento 9 Has Patch / Needs Testing 31711 is_front_page flag affected by frontpage ID and page Title strange conflict General 3.1 normal normal defect (bug) new has-patch 2015-03-20T14:04:03Z 2019-06-04T19:48:24Z "I want to report a strange bug. The ''is_front_page'' flag has incorrect value in cases like described below: Front page in Settings / Reading is set to a static page: http://i.imgur.com/DzrbOVM.png This ''Sample Page'' ID is 2 If you visit any other page, all is fine. For example the ''Lorem ipsum'' page: http://i.imgur.com/n5M0x8R.png However, if you change title of this page to be the same as ID of a frontpage - in my case ''2'', then the ''is_front_page'' flag changes value to incorrect: http://i.imgur.com/KCa1JYo.png It happens for titles like: 2, 02, 000002. Basically always if (int)$page_title == $front_page_id The wrong ''is_front_page'' flag may affect themes/plugins which use it. It's quite rare for the bug to take effect, but it happens, as I got a report from a user of my theme." m_i_n 3 Has Patch / Needs Testing 31577 wp.ajax.send JS function should send ajax request with dataType json General 3.6 normal normal defect (bug) new has-patch 2015-03-09T21:29:46Z 2019-06-04T19:48:03Z "Occasionally when using the wp.ajax.send JS function defined in wp-includes/js/wp-util.js:70 the system fails to auto-detect that the response is JSON, even when it is a valid JSON string. Given that the remainder of the code fails if the response is not a valid object it should be safe to add dataType: 'json' to the default options hash defined on line 78 of that file." TikiTDO 2 Has Patch / Needs Testing 32856 wpColorPicker close should check that iris hasn't been destroyed before toggling it. General 4.2.2 normal normal defect (bug) new has-patch 2015-07-01T14:40:25Z 2019-06-04T19:49:42Z "wpColorPicker.close() can be called (via the 'click.wpcolorpicker' event on body) when the internally used iris widget has already been destroyed, which means that when it attempts to toggle iris an exception is thrown. The attached patch just checks that iris still exists before the toggle is attempted. This issue arose in response to the question ""Modify Custom Field in Media Library using JavaScript"" by @Howdy_McGee on Wordpress Development stackexchange http://wordpress.stackexchange.com/questions/193006/modify-custom-field-in-media-library-using-javascript, which can be used to replicate the scenario. If you open the color picker and then, leaving it open, close the Attachment Details modal window, a $.error exception is thrown (or can be - may depend on your system) by jQuery UI Widget, ""cannot call methods on iris prior to initialization""." gitlost 3 Has Patch / Needs Testing 34853 A helper method should be created to centralize which extensions are used for images. General 4.4 normal normal enhancement new has-patch 2015-12-06T08:44:31Z 2019-06-04T19:53:56Z In keeping with the helper methods introduced in `3.6` for audio/media extensions retrieval, the retrieval of image extensions should similarly be wrapped in a filterable method. Currently all places where this information is needed appear to simply define their own array and use that -- very un-DRY. dan.rossiter 1 Has Patch / Needs Testing 32192 Add HTML attribute builder helper function General 4.2.1 normal normal enhancement new has-patch 2015-04-29T20:01:30Z 2019-06-04T19:49:00Z "I've seen (and wrote) a lot of plugins which manually build out each HTML attribute as a loop, escaping each value and then removing any attribute that has no value. Wouldn't it be nice if there was a function that does all that for you? This patch introduces a new function {{{html_attributes}}} which accepts an array and builds out a string of attributes whilst sanitising the values and removing any empty attributes. I've also updated any uses in core removing the logic and using the function instead. There's probably a few instances still left to update, but this is a good start." paulwilde 6 Has Patch / Needs Testing 34487 "Add a new conditional tag for the ""Posts Page""" General 4.4 normal normal enhancement new has-patch 2015-10-29T19:22:45Z 2019-06-04T19:53:19Z "Currently, there's no conditional tag to determine whether the current page is the ""Posts Page"", set under Settings->Reading. The codex (https://codex.wordpress.org/Conditional_Tags#The_Blog_Page) describes a way to combine is_home() and is_front_page(), but I propose that we instead add a new conditional tag to deal with this. Naming the function is a little tricky. Unfortunately, the name ""is_posts_page"" is taken in query.php, so I created a patch that adds ""is_blog_page"". It returns true on the ""posts page"", and false everywhere else. I've run across this issue in real world projects a couple of times and though it would be a good addition to WordPress. The patch adds this to query.php because is_home() and is_front_page also live there." roytanck 1 Has Patch / Needs Testing 29972 Split pagination calculations and HTML in paginate_links General 4.0 normal normal enhancement new has-patch 2014-10-15T04:22:28Z 2019-06-04T19:46:40Z "The current implementation of paginate_links has a number of issues. It has been improved significantly in the latest version, however there is still room for more improvements. Currently, the function forces you to use the HTML as it has been returned. If you want to add a class onto something, there is no easy way to do it - you're stuck with the defaults as they are hard-coded. The first step towards fixing this is to split the pagination calculations from the HTML. Sort out what's going to go where, and then go and build the HTML and return it. My reasoning is below, take a look and see what you think. I'm not necessarily advocating my particular fix, but I believe at the very least it needs some discussion. This change will make it easier to create features such as custom classes for elements, and will make the code easier to read and maintain. Also this is my first time creating a ticket on WordPress Trac, so go easy :) '''Return raw array data''' If you want to write your own completely custom HTML, you currently have to either copy+paste the function and modify it to suit your needs, or write a whole new one from scratch. The function should be able to return an array containing these values for each pagination item: - type (next/prev/dots/page) - link (where the item links to) - text (the text to be displayed within the link) - active (so you can apply your own active class) This allows for more flexible use of the function within the template. '''Customize the default output''' Sometimes, you might just want to add an extra class to an item or two. Now, you could add these features to the current code, but the section for the active element is split from the normal elements which means you'd have to duplicate code to do it. '''Change the currently selected page element''' I've added a new arg 'link_current' so you can change the default element of the selected page to an A tag instead of the SPAN. I needed this for our specific design, but thought other people might find it useful as well." dylanj 2 Has Patch / Needs Testing 30325 WP List Table: allow filtering view switcher modes General 4.0 normal normal enhancement new has-patch 2014-11-12T19:21:48Z 2019-06-04T19:46:51Z "I suggest the view mode switcher for post/media/site list views should be filterable, so it's possible to: * add additional, custom view modes (especially for custom post types) * filter available view modes * remove view modes completely (effectively removing the switcher from HTML) This would allow developers to customise the switcher for different custom post types. At the moment, this is impossible - and in some cases the switcher may make no sense or have no effect at all, if a specific mode isn't implemented. " ragulka 11 Has Patch / Needs Testing 23454 _deprecated_function Messages chriscct7 General 3.5 normal normal enhancement assigned has-patch 2013-02-12T11:20:39Z 2019-06-04T19:44:32Z "Unlike ''_deprecated_file'' and ''_deprecated_argument'', the ''_deprecated_function'' function has no option to append a message to the triggered notice. I propose adding this to make it consistant with the other 2 functions. Patch to follow." mikejolley 3 Has Patch / Needs Testing 37705 Remove unnecessary parts of WP_HTTP which remain HTTP API normal normal defect (bug) new has-patch 2016-08-18T04:07:10Z 2019-06-04T20:01:04Z "After Requests was merged in WordPress 4.6, WP_HTTP now wraps it with a few of the previous classes remaining for compatibility. Some of these have significant code left in them which is no longer used, and we've still got the entire cURL and Streams WP_HTTP request classes in core. We should be able to remove a large percentage of these without too much issue. There's a chance that some developers have been using these classes directly, especially as a number of items were marked as public (due to how it was developed). I'd like to take the hardline approach and rip everything not needed out early, and restore compatibility shims where needed if it turns out developers were using things directly (incorrectly)." dd32 10 Has Patch / Needs Testing 29390 add filter for get_date_from_gmt() I18N 1.2 normal normal defect (bug) new has-patch 2014-08-27T08:53:24Z 2019-06-04T20:08:52Z "Please add filter for i18n date`s in get_date_from_gmt(); Buddypress use this function in admin section for display posts time, and we can't change dates via i18n and filters for Persian dates (Jalali Calendar). get_date_from_gmt() is located in wp-includes/formatting.php Thank you" zakrot 1 Has Patch / Needs Testing 23482 Fix improper use of comment_exists() in some importers maxpagels Import normal normal defect (bug) assigned has-patch 2013-02-15T18:49:18Z 2019-06-04T20:05:02Z "Background: #20494 DotClear Importer and TextPattern Importer treat the returned comment post ID as a comment ID: [[BR]] http://plugins.trac.wordpress.org/browser/dotclear-importer/trunk/dotclear-importer.php#L416 [[BR]] http://plugins.trac.wordpress.org/browser/textpattern-importer/trunk/textpattern-importer.php#L429" SergeyBiryukov 2 Has Patch / Needs Testing 12885 LiveJournal importer uses GMT date/time as local date/time Import normal normal defect (bug) new has-patch 2010-04-07T02:07:25Z 2019-06-04T20:02:01Z "The LiveJournal importer takes a comment's date/timestamp, which is in GMT, and inserts it into the database as the comment's local date/timestamp. In my timezone (U.S. Central, DST), a comment posted at 12:00pm local time (5:00pm GMT) will be imported to the database as having been posted at 5:00pm local time (10:00pm GMT). I've attached a patch that I've successfully tested on Wordpress 2.9.2, and it appears to be easily ported to trunk. One caveat: it appears that there are two timezone settings in the Wordpress database (timezone_string and gmt_offset), but as my database has no value for gmt_offset, I don't know if I need to account for that, nor can I test that." kurtmckee 8 Has Patch / Needs Testing 21597 WordPress Importer $base_url index failed Import 3.4 normal normal defect (bug) new has-patch 2012-08-15T18:30:11Z 2019-06-04T20:03:35Z "When XRS file without the site url tag is imported, it throws a notice. This patch allow people to upload hand-made and not-attached-to-any-site XRS file. I came across creating a XRS file to import names of cities from Portugal to a specific custom taxonomy to some sites. This can reflect the necessity of this patch." lightningspirit 1 Has Patch / Needs Testing 23275 WordPress Importer: line-ending mismatch corrupts serialized meta Import normal normal defect (bug) new has-patch 2013-01-23T16:56:04Z 2019-06-04T20:04:44Z "A possible solution: {{{ if ( $key ) { // export gets meta straight from the DB so could have a serialized string if ( ! $value ) $value = maybe_unserialize( $meta['value'] ); // Occationally, line-endings break unserialize() if ( empty( $value ) ) // Try normalizing... $value = maybe_unserialize( str_replace( array(""\r\n"", ""\r"", ""\n""), ""\r\n"", $meta['value'] ) ); if ( empty( $value ) ) // Adjust string length if needed $value = maybe_unserialize( preg_replace( // e flag deprecated in PHP 5.5.0 I think '!s:(\d+):""(.*?)"";!se', ""'s:'.strlen('$2').':\""$2\"";'"", $meta['value'] ) ); add_post_meta( $post_id, $key, $value ); do_action( 'import_post_meta', $post_id, $key, $value ); // if the post has a featured image, take note of this in case of remap if ( '_thumbnail_id' == $key ) $this->featured_images[$post_id] = (int) $value; } }}}" WraithKenny 5 Has Patch / Needs Testing 15586 movabletype-importer, trivial: fix no index upload_type warning Import 3.1 normal normal defect (bug) new has-patch 2010-11-26T00:43:46Z 2019-06-04T20:02:24Z "movabletype-importer, trivial: fix no index upload_type warning ENV: http://plugins.svn.wordpress.org/movabletype-importer/trunk r315664" lloydbudd 2 Has Patch / Needs Testing 30227 Inaccurate wording when creating a user with a reserved email address Login and Registration 3.3.2 normal normal defect (bug) new has-patch 2014-11-01T06:16:43Z 2020-02-06T19:47:07Z "If you try to create a user on multisite using an email address that is tied to an unconfirmed user, you'll get this notice That email address has already been used. Please check your inbox for an activation email. It will become available in a couple of days if you do nothing. ""Please check ''your'' inbox"" seems to imply that the logged in user should check their own inbox for an activation email. Not sure of the best way to reword that so it's clear without being overly wordy. Possibly something like That email address is reserved pending activation. It will become available in a couple of days if left unconfirmed. or That email address is reserved. An activation email has been sent to that address. If left unconfirmed it will become available in a couple of days. Also, ""couple of days"" could be any time less than 2 days, so perhaps a dynamic value could be used here giving a better approximatation of the time remaining till the unconfirmed address will be freed up. ''This is referenced in #20817''" trepmal 8 Has Patch / Needs Testing 27165 Incorrect nonce supplied when authenticated session expires Login and Registration 3.8.1 normal minor defect (bug) new has-patch 2014-02-20T11:55:44Z 2019-06-04T20:06:52Z "I was using a nonce (with action name) for a nopriv ajax request and found nonce supplied via page load was invalid, whereas nonce supplied via ajax request was valid. This only occurs when admin area prompts to re-authenticate current user. In my system, a nonce (action 'xyz', say) is given via localize script to the client on page load. This nonce is then used to verify a subsequent nopriv ajax request. This request then responds with the latest nonce (for 'xyz') (which may be the same, of course) for any further ajax requests. However, I suddenly found that upon page reload, the nonce provided via localize script was invalid. Assuming this was a bug in my code, I commented out nonce verification in my action function. I then discovered that the ""new"" nonce being supplied in the ajax response was always different to the initial nonce despite the same action name being used in its creation. On further experimentation it became apparent that the nonce supplied by ajax response was valid and did verify with further ajax requests. I then found I had the admin area open in a separate tab and it was prompting me to re-authenticate. Upon logging back in the nonces realigned and worked again. tl;dr: Requests by ajax consider current user differently to fresh page load (for nonces at least) when in logged in limbo. The bug is that it shouldn't. It's a very minor issue but it was very confusing and took me quite some time to find the somewhat non-intuitive solution." joe_bopper 2 Has Patch / Needs Testing 36098 "Install: ""Repeat Password"" is not required when browser js is disabled" Login and Registration normal normal defect (bug) new close 2016-03-05T00:57:39Z 2020-02-16T21:35:57Z "Recreate: 1. Turn off browser JS. 2. Install WordPress. 3. Go to step 2. The ""'''Repeat Password'''"" field is marked as '''required'''. It's not. ---- Recreate this step by step: Leave all fields empty and press the install button. You will see an error saying: `Please provide a valid username.` Enter invalid username (use spaces). You will see an error saying: `The username you provided has invalid characters.` Enter valid username. You will see an error saying: `You must provide an email address.` Enter some text (not an email). You will see this error message: `Sorry, that isn’t a valid email address. Email addresses look like username@example.com.` If you provide a valid email, it will install WordPress. ''' Password is not required! '''" ramiy 5 Has Patch / Needs Testing 13655 Login/Install/User Edit should stripslashes() $_POST data Login and Registration 3.0 normal normal defect (bug) new has-patch 2010-05-31T11:33:17Z 2019-06-04T20:02:12Z "Following on from #13654 All Login/Registration/Install/User Edit functionality should stripslash $_POST data. At present, it seems that we do not stripslash at all. For existing user passwords, we should migrate passwords to their non-stripslashed versions: [5/31/10 6:34:11 AM] Mark Jaquith: We could migrate people.[[BR]] [5/31/10 6:34:13 AM] Dion (dd32): Perhaps oughta just add proper stripslashing in 3.1, and add back-compat to change password from non-stripslashed to stripslashed.. similar to the md5->phpass implementation..[[BR]] [5/31/10 6:35:13 AM] Mark Jaquith: Yep. If the PW doesn't match, addslashes() and compare again. If that matches, set the new PW hash. Right?[[BR]] [5/31/10 6:35:19 AM] Dion (dd32): yep " dd32 4 Has Patch / Needs Testing 35736 Replace 'Lost Password' phrase with 'Reset Password' chriscct7* Login and Registration normal normal defect (bug) accepted has-patch 2016-02-05T02:04:28Z 2020-02-06T19:46:34Z "This is a simple terminology change with a huge impact on the end user. Since v4.3, WordPress is no longer sends passwords via email. WordPress sends only password reset links. WordPress also notifies by e-mail when a password is changed. Across WordPress core, the old ""'''Lost my password?'''"" phrase already replaced with the new ""'''Reset Password'''"" / ""'''Password Reset'''"" phrases. But in some places we still use the old ""'''Lost my password?'''"" phrase. This ticket aim is to replace the remaining strings in the login page, and in email notifications. === Login Page === In the reset screen, the page title is ""'''Password Reset'''"". But in the ""'''Login page'''"", the 3 action links under the form - '''Login''' / '''Register''' / '''Lost your password?''' We should replace the old '''Lost your password?''' phrase with the new ""'''Reset Password'''"" action. === Mail notifications === When WordPress notifies by e-mail that the password is changed, we use the ""'''Password Lost and Changed for user...'''"" phrase. Why not simplify this? ""'''Password Changed for user...'''""" ramiy 20 Has Patch / Needs Testing 35018 The authentication check modal dialog appears just once Login and Registration 4.4 normal normal defect (bug) new has-patch 2015-12-11T17:12:25Z 2019-06-04T20:19:17Z "Noticed while investigating on #34951. To reproduce: 1. edit a post 2. open a new tab, go in some other admin screen and log out 3. in the tab with the edit post screen, after a while the authentication modal dialog appears 4. login again using the modal dialog 5. repeat step 2 The authentication modal dialog won't appear again because, as far as I see, when it gets hidden the custom event that triggers the dialog gets removed. See `hide()` in `/wp-includes/js/wp-auth-check.js` {{{ $(document).off( 'heartbeat-tick.wp-auth-check' ); }}} Not sure why the event is removed." afercia 1 Has Patch / Needs Testing 20116 Welcome User Email in Multisite Can't Be Changed Login and Registration 3.3 normal normal defect (bug) new has-patch 2012-02-24T21:44:28Z 2019-06-04T20:03:14Z "Reproduced this on 3.3 and 3.4-aortic. Go to /wp-admin/network/settings.php Add 'New' to the sentance 'Welcome User' to make it 'Welcome New User' Hit update. Page refreshes, text does not change." Ipstenu 13 Has Patch / Needs Testing 27632 `wp_registration_url()` doesn't have a redirect argument chriscct7 Login and Registration 3.6 normal normal defect (bug) reviewing has-patch 2014-04-02T12:05:53Z 2019-06-04T20:07:13Z "There is a redirect argument for each of the login, logout, lostpassword url functions, but for the registration url function. Omission or done on purpose?" Denis-de-Bernardy 3 Has Patch / Needs Testing 35858 """wpmu_welcome_notification"" has a filter post-processing routines in wrong place" Login and Registration 3.0 normal normal enhancement new has-patch 2016-02-18T08:54:11Z 2019-06-04T20:22:37Z """wpmu_welcome_notification"" has a filter post-processing routines in wrong place which renders the filter mostly useless. Nearly identical ""wpmu_welcome_user_notification"" has it done corectly. Diff/Patch attached. " mwillberg 3 Has Patch / Needs Testing 32508 Action Hooks for empty username and empty password Login and Registration 4.3 normal normal enhancement new has-patch 2015-05-27T16:19:13Z 2019-06-04T20:14:06Z "While you could previously fire an action on ''wp_login_failed'', there were no hooks for an empty username or an empty password. This patch adds ''wp_login_failed_empty_username'' and ''wp_login_failed_empty_password''. ''wp_login_failed_empty_username'' passes no arguments. Similar to ''wp_login_failed'', ''wp_login_failed_empty_password'' will pass the entered username. " jwarren 9 Has Patch / Needs Testing 28528 Action in wp-login.php Login and Registration normal normal enhancement new has-patch 2014-06-13T13:28:21Z 2019-06-04T20:08:10Z "Hi, I was thinking that wp-login should have some do actions, and more customization possible, like filtering username and password inputs. Is it in program? Thanks :)" SGr33n 9 Has Patch / Needs Testing 33295 Login: Remove decoration from translation strings Login and Registration 2.5 normal normal enhancement new has-patch 2015-08-06T19:13:30Z 2021-07-15T18:41:21Z "In recent default themes we've begun to remove decorative icons like arrows and carets from translatable strings and add them through CSS. We should do the same on the login screen. It would also make it easier to customize styling of the page." obenland 3 Has Patch / Needs Testing 28352 New filters in wp-activate.php voldemortensen Login and Registration 3.0 normal normal enhancement assigned has-patch 2014-05-25T08:54:00Z 2019-06-04T20:07:52Z "Added two new filters to filter content being displayed on activation confirmation or error. `signup_activation_success` and `signup_activation_error`, it allows to change the default activation message being displayed" UmeshSingla 9 Has Patch / Needs Testing 28351 New filters in wp-signup.php Login and Registration 3.0 normal normal enhancement new has-patch 2014-05-25T06:20:01Z 2019-06-04T20:07:48Z "Added two new filters in wp-signup.php `confirm_user_signup` and `confirm_blog_signup`, they allow a user to filter the message being printed on signup confirmation after successful user or blog registration. Currently the wp-signup.php file does not provide enough flexibility to display a custom confirmation message, although it should be a easy thing. " UmeshSingla 7 Has Patch / Needs Testing 35829 Separate functions from wp-login.php Login and Registration normal normal enhancement new has-patch 2016-02-14T13:10:10Z 2019-06-04T20:22:28Z "There are some functions in `wp-login.php`. But it makes hard to customize login page. (e.g. [https://github.com/georgestephanis/two-factor/pull/62 2FA Feature plugin]) Related: #20279" extendwings 1 Has Patch / Needs Testing 35427 add filter on the wpmu_signup_user() meta values in user-new Login and Registration 3.0 normal normal enhancement new has-patch 2016-01-12T20:49:48Z 2019-06-04T20:20:51Z "I want to add additional meta when signing up a new user so I need a filter to allow this '''note'''. the s2member multi-site setup requires c a core mode to allow this " pbearne 6 Has Patch / Needs Testing 35422 only exit if the redirect is true when registering on multisites Login and Registration normal normal enhancement new has-patch 2016-01-12T18:55:09Z 2022-02-19T08:10:40Z " in wp-login.php we do a redirect to (wp_signup_location wp-signup.php) when registering on multi sites and die we should only die if the redirect is true I also want to this patch added to save me from having to edit a core file inorder to install s2member on multisite This plugin has install instructions that have us rem out the redirect and exit ` {{{#!php do_items(false, 1); return $this->done; } }}} Indeed style elements are allowed in the body in HTML5, provided it is a '''style''' element - not link element - and provided it has the scoped attribute. See http://www.w3.org/TR/2011/WD-html5-author-20110705/the-style-element.html#the-style-element Here are the medialements genetared tags in the body: {{{ }}} But this breaks W3C's HTML5 validation. According to http://www.w3.org/TR/2011/WD-html5-author-20110705/the-link-element.html : Link elements must be used in metadata content. According to http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-link-element : If the rel attribute is used, the element is restricted to the head element. When used with the itemprop attribute, the element can be used both in the head element and in the body of the page, subject to the constraints of the microdata model. " AlphaK 9 Has Patch / Needs Testing 31029 Allow 0 columns in gallery settings rhurling Media 4.1 normal normal defect (bug) assigned has-patch 2015-01-15T23:02:38Z 2022-10-26T19:47:56Z "Gallery columns ""0"" is a valid setting and correctly outputs a proper CSS class `class=""gallery galleryid-43 gallery-columns-0 gallery-size-thumbnail"">` Using that CSS class, as a theme author, I could easily build, for example, a grid layout with items displayed inline (or whatever layout other than ""columns""), overriding just a very few CSS rules. I could set `columns=""0""` manually, however, each time I'd edit the gallery settings through the media views UI, `columns=""0""` would be removed and it would fallback to the default 3 columns. [[Image(https://cldup.com/7zoOccOC1H.png)]] I would propose to add and allow a ""none"" columns setting, with value ""0"". P.S. just noticed: same if I want to add a value higher than ""9"". Setting an arbitrary limit to ""9"" is an assumption that, as developers, we shouldn't do. What if I want, say, 10 images per row?" afercia 19 Has Patch / Needs Testing 32654 Denying upload_files cap makes Customizer and Media modal act oddly wonderboymusic Media 4.3 normal normal defect (bug) assigned has-patch 2015-06-15T17:40:05Z 2019-06-04T20:14:17Z "This is an unusual one, so labeling it as an enhancement rather than a bug. Somebody more familiar with the Customizer classes and Media modal might know the right way to handle this properly. If you disable the upload_files capability, with the intent of not allowing file uploads by anybody (duh), then the customizer acts very odd in the assorted image-related controls. Example code: {{{ add_filter('user_has_cap', 'no_file_uploads'); function no_file_uploads( $caps ) { $caps['upload_files'] = false; return $caps; } }}} The ""Header Image"" section still has an ""Add New Image"" button, which gives you the Media Library popup, with a spinner that never stops spinning. Also, the Upload Files tab still exist. The ""Background Image"" section has a Select Image button, with the same broken Media Library popup as the other one. Expected behavior: Media chooser that works, no Upload Files tab. This may be an issue both with the Customizer showing incorrect buttons, or which more properly belongs to the Media modal in that it should still be possible to select an image even if you cannot upload one. Alternatively, disabling upload_files in this way may be the wrong way to do it, although it is the most obvious approach. " Otto42 4 Has Patch / Needs Testing 26992 Failing to make new yyyy/mm for uploads affects existing URLs (WP_CONTENT_URL, wp_get_attachment_url and GUID) Media 2.7 normal normal defect (bug) new has-patch 2014-02-02T17:53:13Z 2019-06-04T20:06:42Z "What happens: - I have the `WP_CONTENT_DIR` and `_URL` pointing somewhere, not where the WP is installed. - There was an error creating upload folder `yyyy/mm` (permission issues) - `wp_get_attachment_url()` could not go through the `if ( ($uploads = wp_upload_dir()) && false === $uploads['error'] )` block and came to the ""not recommended to rely upon"" `$url = get_the_guid( $post->ID );` The GUID returned completely ignored my settings. It started with the default `/wp-content/`. Obviously. Those attachments were made before I moved the wp-content, and nobody fixed the GUIDs. Result: all images broken. I believe, something has to be changed here, so '''when the upload directory for new attachments cannot be created, it won't affect the existing attachments'''. ---- Code Path: `wp_get_attachment_image_src -> image_downsize -> wp_get_attachment_url`" tivnet 10 Has Patch / Needs Testing 27139 Image caption disappears if images are rearranged immediately after adding the caption. Media 3.5 normal normal defect (bug) new has-patch 2014-02-16T05:13:04Z 2021-02-09T04:52:37Z "**Steps to reproduce (screencast here: http://youtu.be/MF2SEn_lMeQ):** 1. While editing a post, open the Add Media dialog. 1. Upload (or select) two images and choose ""Create Gallery."" 1. Click ""Create New Gallery"". 1. Add a caption to the first image in the text field underneath the image preview in the main ""Edit Gallery"" area. 1. Drag the second image so that it is reordered in front of the first image. **What I expected:** The images would be reordered and the image captions would not be changed. **What actually happened:** The images were reordered, but the image caption I had just entered reverted to its previous state. Clicking in any other text field before reordering images seems to ""cement"" the caption, but you can click on multiple images before dragging an image, and the caption will still revert." cfinke 6 Has Patch / Needs Testing 24815 get_the_post_thumbnail() fetches full sized image if 'post-thumbnail' custom size not defined in theme Media 2.9 normal normal defect (bug) new has-patch 2013-07-22T09:43:42Z 2019-06-04T20:05:46Z "In wp-includes/post-thumbnail-template.php the $size default value is set as 'post-thumbnail' in the following function: - get_the_post_thumbnail() '''Expected behaviour''' Expected behaviour would be to return the image at 'post-thumbnail' dimensions - however, if this is not set in the theme via: - set_post_thumbnail_size() function - add_image_size() function it returns the full sized sized image begin displayed. I'd expect this to return the image at standard 'thumbnail' size, as some people will just add add_theme_support( 'post-thumbnails' ) and not set (or even need) custom dimensions. '''Proposal and patch''' $size default value should default back to 'thumbnail' for normal expected function behaviour if 'post-thumbnail' specific dimensions have not been set. I'm not sure if it would be more efficient to test against the global variable that holds these values, or use get_intermediate_image_sizes() as I've used in the patch attached - 2nd opinion please?" Jonnyauk 5 Has Patch / Needs Testing 24430 inconsistent icon_dir/icon_dirs use in wp_mime_type_icon and wp_get_attachment_image_src Media 2.5 normal normal defect (bug) new has-patch 2013-05-27T04:33:52Z 2019-06-04T20:05:35Z "/wp-includes/post.php function wp_mime_type_icon allows for multiple icon image directories by applying the ""icon_dirs"" filter: {{{ if ( !is_array($icon_files) ) { $icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/crystal' ); $icon_dir_uri = apply_filters( 'icon_dir_uri', includes_url('images/crystal') ); $dirs = apply_filters( 'icon_dirs', array($icon_dir => $icon_dir_uri) ); $icon_files = array(); while ( $dirs ) { ... }}} However, /wp-includes/media.php function wp_get_attachment_image_src does not apply the ""icon_dirs"" filter: {{{ if ( $icon && $src = wp_mime_type_icon($attachment_id) ) { $icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/crystal' ); $src_file = $icon_dir . '/' . wp_basename($src); @list($width, $height) = getimagesize($src_file); } }}} The base filename is always combined with the default Wordress directory path and passed to getimagesize. This means that any additional directories will never be passed to getimagesize(), and an incorrect size or no size at all will be used for any icon image files not sourced from the WordPress default directory. " dglingren 7 Has Patch / Needs Testing 18730 media_sideload_image() doesn't handle dynamic image url's well Media 2.9 normal normal defect (bug) new has-patch 2011-09-21T10:49:11Z 2020-06-04T17:22:40Z "Example URL: http://www.tumblr.com/photo/1280/10464566223/1/tumblr_lrum2xzkpC1r3z8e3 As a result, the preg_match() for the file extension fails and issues a notice (no file extension in that url, although the redirection location does have). The handling of a download failure also seems hairy, upon failure, it still attempts further importing before loading - I haven't looked into that too far." dd32 4 Has Patch / Needs Testing 34736 wp_calculate_image_srcset filter: provide the individual srcset image size joemcgill* Media 4.4 normal normal defect (bug) accepted has-patch 2015-11-19T03:16:03Z 2019-06-04T20:18:12Z "When using the `wp_calculate_image_srcset` filter, plugins have access to the `value` (typically the width), but no easy way to access the height of the image being used for that particular srcset source. Since Core already knows the height of the image being considered, instead of asking a plugin to backwards-engineer it when needed, I suggest we should be explicitly sending the size to make it more functional. Slack convo: https://wordpress.slack.com/archives/feature-respimg/p1447899460000167 Plugin example: https://github.com/Automattic/jetpack/pull/3040" kraftbj 7 Has Patch / Needs Testing 19512 wp_read_image_metadata includes bitmap in description Media 3.3 normal normal defect (bug) new has-patch 2011-12-12T13:47:40Z 2019-06-04T20:03:02Z "After uploading a photo that includes (photoshop) bitmaps in the image data, the bitmap data is copied into the image description. " macbrink 2 Has Patch / Needs Testing 36931 wp_upload_dir caches calls with default arguments separately from their explicit equivalent Media 4.5 normal normal defect (bug) new has-patch 2016-05-24T09:55:05Z 2019-06-04T20:25:34Z "This a fairly minor bug. Prior to [36565] the following were equivalent {{{#!php $upload = wp_upload_dir(); $upload2 = wp_upload_dir( gmstrftime('%Y/%m') ); }}} (In deed, even `$upload3 = wp_upload_dir( gmstrftime('%Y/%m yabadabadoo') );` is equivalent, but that behaviour is undocumented.) Since caching has been introduced the first call to `wp_upload_dir()` is stored separately in the cache to the second call, despite the fact that they are otherwise interpreted the same. This causes a disparity in behaviour when one of the caches is cleared after a setting has been changed: {{{#!php $upload = wp_upload_dir(); $upload2 = wp_upload_dir( gmstrftime('%Y/%m') ); // $upload == $upload2 //Disable year/month folders and clear the cache add_filter( 'pre_option_uploads_use_yearmonth_folders', '__return_null' ); wp_upload_dir( null, false, true ); $upload = wp_upload_dir( null ); $upload2 = wp_upload_dir( gmstrftime('%Y/%m') ); //$upload != $upload2 remove_filter( 'pre_option_uploads_use_yearmonth_folders', '__return_null' ); }}} " stephenharris 2 Has Patch / Needs Testing 31945 Deleting a user without reassigning should have clearer messaging about the implications Media 4.2 normal normal enhancement new has-patch 2015-04-10T18:53:18Z 2019-06-04T20:12:36Z "Just this morning, a client deleted a user and elected to NOT reassign the user's content, as the user had no posts assigned to them. This resulted in a mass-deletion of attachments which that editor had uploaded. There should at least be some language that indicates the danger of deleting a user without reassigning. Even when you click to 'permanently delete' an attachment, you get a javascript alert. The current terminology ""What should be done with content owned by this user?"" is too innocuous. Ideally, WordPress would indicate which post types would be deleted with that user (by checking the `delete_with_user` post_type object parameter), along with a count of the number of items in that post type." jtsternberg 13 Has Patch / Needs Testing 28381 Filter for unattached attachments count Media 4.0 normal normal enhancement new has-patch 2014-05-28T14:22:53Z 2019-06-04T20:07:59Z "There is a filter available for modifying attachment counts (wp_count_attachments) but no filter for modifying unattached attachments count. Therefore I am suggesting this be added via a new filter, wp_count_unattached_attachments, see attached patch. The attached patch is against trunk." khromov 3 Has Patch / Needs Testing 21569 Filter gallery styles with access to $attr Media 3.5 normal normal enhancement new has-patch 2012-08-13T21:18:25Z 2019-06-04T20:03:33Z "Currently you can replace the entire output, but that's all or nothing — if you decide to do that, you also need to parse the attributes array, decide on good defaults, etc. You can also filter the styles, but you don't have access to the attributes array. Use case: In my theme, I'd like to use the number of columns as more of a suggestion. I could set min-width to what `$itemwidth` is currently and it would be more responsive. If the page shrinks too small, it would only load 1 image per line instead of being locked into the right number of columns." betzster 9 Has Patch / Needs Testing 36194 Media Settings page description is unclear Media normal normal enhancement new has-patch 2016-03-10T15:30:36Z 2020-02-06T19:45:54Z "The media settings reads the following: ""The sizes listed below determine the maximum dimensions in pixels to use when adding an image to the Media Library."" I saw a Facebook in Advanced WordPress where someone expected images uploaded to be converted to these dimensions in ALL cases. But the full picture will still remain in the uploaded dimensions, of course. ''(link: https://www.facebook.com/groups/advancedwp/permalink/1107356659326547/)'' New WordPress / non-developers will probably understand this differently so I'd think a description like this would be better: ""The sizes listed below determine the maximum dimensions in pixels to use for displaying cropped images."" Or something in that direction? The description is changed earlier in reply to this ticket: https://core.trac.wordpress.org/ticket/15732" mklasen 1 Has Patch / Needs Testing 33278 Naming files with dimensions when manually cropping images Media 4.1.6 normal normal enhancement new has-patch 2015-08-05T15:38:27Z 2019-06-04T20:15:16Z "Hi. When I create a new dimension for image file in image editor, I get file with random name. It is more useful to name it like basic files (filename-150x150.ext, filename-300x300.ext). I change for it ""/wp-admin/includes/image-edit.php"". This code first try to use dimension-name before using random. Starting from line 707. My code in a pluses. {{{ // Generate new filename. $path = get_attached_file($post_id); $path_parts = pathinfo( $path ); $filename = $path_parts['filename']; $suffix = time() . rand(100, 999); //++++++++++++++++++++++++++++++++++++++++++++++++ // First try suffix-sizes - mine $suffix_sizes = $img->get_size(); $suffix_sizes = ""-"".$suffix_sizes[""width""].""x"".$suffix_sizes[""height""]; //++++++++++++++++++++++++++++++++++++++++++++++++ if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE && isset($backup_sizes['full-orig']) && $backup_sizes['full-orig']['file'] != $path_parts['basename'] ) { if ( 'thumbnail' == $target ) $new_path = ""{$path_parts['dirname']}/{$filename}-temp.{$path_parts['extension']}""; else $new_path = $path; } else { //++++++++++++++++++++++++++++++++++++++++++++++++ // First try suffix-sizes - mine $filename = preg_replace( ""/-e([0-9]+)$/"", """", $filename ); $filename = preg_replace( ""/-([0-9]{1,5})x([0-9]{1,5})$/"", """", $filename ); $filename .= $suffix_sizes; $new_filename = $filename.""."".$path_parts[""extension""]; $new_path = $path_parts[""dirname""].""/"".$new_filename; if ( file_exists($new_path) ){ //++++++++++++++++++++++++++++++++++++++++++++++++ while( true ) { $filename = preg_replace( '/-e([0-9]+)$/', '', $filename ); $filename .= ""-e{$suffix}""; $new_filename = ""{$filename}.{$path_parts['extension']}""; $new_path = ""{$path_parts['dirname']}/$new_filename""; if ( file_exists($new_path) ) $suffix++; else break; } //++++++++++++++++++++++++++++++++++++++++++++++++ } //++++++++++++++++++++++++++++++++++++++++++++++++ } }}}" acbaile 3 Has Patch / Needs Testing 32544 No function exposes all supported MIME types octalmage Media 4.2.2 low normal enhancement assigned has-patch 2015-06-01T04:38:30Z 2019-06-04T20:27:35Z "`wp_get_mime_types()` returns the default WP MIME types, and `get_allowed_mime_types()` returns the default WP MIME types + added MIME types through the `upload_mimes` filter, but the kicker with the latter is that it is filtered based on the currently authenticated user. There needs to be a way to retrieve all MIME types supported, both the default and the ones added through the `upload_mimes` filter, regardless of who is authenticated. I understand there are security reasons for not allowing users to *add* (or write) attachments of a given MIME type, but when a user is reading there needs to be a way to retrieve an unrestricted list of all MIME types. An example use case is below, where all supported MIME types for a service are retrieved from its API and then the subset of types that are both supported by the WordPress install and the service are kept. {{{ function get_service_mime_types() { // the desired function to get un-sanitized MIME types $wp_types = wp_get_all_mime_types(); // get intersection of WP / service MIME types $allowed = array_intersect($wp_types, get_service_mime_types()); $allowed = array_keys($allowed); return $allowed; } }}} As a work-around, I'm currently using the following, but it's flawed -- if a custom MIME type is added conditionally by user type, it won't be included which is not the desired behavior. {{{ array_merge(wp_get_mime_types(), get_allowed_mime_types()) }}}" dan.rossiter 6 Has Patch / Needs Testing 29727 Porting self-hosted Wordpress to HTTPS: mixed content Media 4.0 normal normal enhancement new has-patch 2014-09-22T13:57:04Z 2019-06-04T20:09:16Z "When moving a self-hosted Wordpress blog from HTTP to HTTPS (by editing the site URL at /wp-admin/options-general.php), I run into trouble because image links embedded in existing posts still point to HTTP, even though those images are hosted by my Wordpress blog and now support HTTPS. It would be great if Wordpress could automatically rewrite images in existing posts when site URL is changed to HTTPS." jsha 5 Has Patch / Needs Testing 36916 Refactor EditAttachments frame to work outside Media Library admin page Media 4.5.2 normal normal enhancement new has-patch 2016-05-23T02:26:26Z 2019-06-04T20:25:21Z "The EditAttachments frame/modal is used on the Media Library page to display and edit meta data of attachments. This modal could be useful for plugin/theme developers but a few things tightly couple it to the Media Library: 1. The frame requires a router. This is easily remedied by feeding it a dummy object with two functions it seems to need but I can see this easily refactored using event listeners 2. When opened, the code in the modal deletes all mediaelement.js instances on a page. Not a problem in the media library but if you want to use it on a page with video and audio elements (which I do) it deletes them all from the DOM" Funkatronic 7 Has Patch / Needs Testing 22100 Treat built-in image sizes the same as custom image sizes Media normal normal enhancement new has-patch 2012-10-04T15:39:44Z 2019-06-04T20:03:57Z "Goals: 0. Have a solid API for working with intermediate image size definitions. 1. Don't hardcode default image sizes; register them like any other. 2. ~~Introduce a 'pregenerate' arg, which will allow defining an image size that will not be automatically generated right after upload.~~ Related tickets: #15311, #21810" scribu 17 Has Patch / Needs Testing 28077 Use exif_imagetype instead of getimagesize in file_is_displayable_image Media 2.5 normal normal enhancement new has-patch 2014-04-30T17:14:33Z 2019-06-04T20:07:29Z "From http://us3.php.net/manual/en/function.exif-imagetype.php: > exif_imagetype — Determine the type of an image > When a correct signature is found, the appropriate constant value will be returned otherwise the return value is FALSE. The return value is the same value that getimagesize() returns in index 2 but exif_imagetype() is much faster. For whatever reason, `getimagesize` also fails to read the type from a Custom Stream Wrapper, whereas `exif_imagetype` reports that correctly." joehoyle 7 Has Patch / Needs Testing 15149 image_get_intermediate_size partly ignores 'path' and 'url' fields and has inconsistent return values Media 3.1 normal normal enhancement new has-patch 2010-10-19T13:13:32Z 2019-06-04T20:02:21Z "the current implementations of image_get_intermediate_size and image_downsize in wp-includes/media.php have several inconsistencies. image_get_intermediate_size() returns the following information about an attachment for registered sizes: file, width, height, path, url. for ad-hoc sizes (if the size argument is an array) it returns: file, width, height. in the second case, path and url information that may have been set by a plugin is lost. further, the calling function, image_downsize(), in any case regenerates the url like this {{{ $img_url = str_replace(basename($img_url), $intermediate['file'], $img_url); }}} this means that now also for the registered sizes, the 'url' information is discarded. further, this means that for registered sizes, the url is computed twice, once inside image_downsize as detailed above, once in image_get_intermediate_size() like this {{{ $data['url'] = path_join( dirname($file_url), $data['file'] ); }}} to me, a cleaner approach would be to return the full information (file, width, height, path, url) independent of whether an image size is registered or not. all these fields can then also be directly calculated inside image_get_intermediate_size() and the caller does not have to bother with, e.g., generating paths and urls. further, this would allow to accept path and url information that is already present in the db, also in the case of ad-hoc image sizes. i put together a patch that provides a potential solution. " whoismanu 9 Has Patch / Needs Testing 23902 Classes set with nav_menu_css_class are not accessible in walker_nav_menu_start_el Menus 3.5.1 normal normal defect (bug) new has-patch 2013-03-29T20:46:33Z 2019-06-04T20:05:18Z "Hello, If you use the filter hook nav_menu_css_class to add classes to a menu item, those classes are not available in other menu filter hooks like walker_nav_menu_start_el. This can be found in the start_el function in wp-includes/nav-menu-template.php. I would think line 75: {{{ $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args ) ); }}} Should merge those $class_names back into $item. Thanks" jamesmehorter 3 Has Patch / Needs Testing 32237 Default query args are ignored in menu editor's taxonomy metaboxes Menus 4.2.1 normal normal defect (bug) new has-patch 2015-05-02T13:24:18Z 2019-06-04T20:13:04Z "`wp_nav_menu_item_post_type_meta_box()` merges `$post_type['args']->_default_query` but `wp_nav_menu_item_taxonomy_meta_box` ignores `$taxonomy['args']->_default_query` Please handle default query parameters. I'd like to make the metabox longer than 50." szepe.viktor 3 Has Patch / Needs Testing 34803 Deleting menu item with sub-items does not update sub-items' parent (with disabled JS) Menus 3.0 normal normal defect (bug) new has-patch 2015-11-27T14:16:00Z 2019-06-04T20:18:28Z "This bug appears only with '''disabled JavaScript'''. If I create menu with following structure: - Parent - Child 1 - Child 2 and I delete ''Child 1'', it should look like this: - Parent - Child 2 The problem is that WP does not update the ''Child 2'' 's parent (postmeta ''_menu_item_menu_item_parent'') with disabled JavaScript." JanVoracek 3 Has Patch / Needs Testing 37026 PHP Notice: Trying to get property of non-object in wp-admin\nav-menus.php on line 836 Menus 4.5.2 normal normal defect (bug) new has-patch 2016-06-04T07:56:36Z 2019-06-04T20:26:04Z "I'm using WordPress 4.5.2 and get this PHP Notice: {{{ PHP Notice: Trying to get property of non-object in wp-admin\nav-menus.php on line 836 }}} When I export and import database for using on localhost (one database content for two sites), two sites using different theme and have different menu location. My first site has menu location Mobile, when I use this database on new site with Twenty Sixteen theme, it doesn't have this location, so the notice message appeared. The menu location on Menu Settings section looks like this: {{{ Mobile (Currently set to: ) }}} Plese add a conditional function to check if is a nav menu object before get its name. {{{ wp_get_nav_menu_object( $menu_locations[ $location ] )->name }}} It's not an error, but I don't want to see this notice message when coding theme. Thank you." skylarkcob 1 Has Patch / Needs Testing 24975 Scheduled Page on Menu showing before Schedule time chriscct7 Menus 3.6 normal normal defect (bug) reviewing has-patch 2013-08-07T02:23:55Z 2019-06-04T20:05:51Z "Hi all, I think I have found a bug. Wordpress 3.6 on Xampp server Scenario: I create a page (today) and schedule it (example tomorrow, 1 month, several months). When I go to Menus, the page is not in 'Most Recent' or 'View All' tabs. When I search by Page Title I can locate the page & add the page to the Menu. The page is now on the menu and set to schedule on the Dashboard. Should the page be showing on the menu when it is set to Schedule? Or should the 'Search' only search published pages?" nellyshark 8 Has Patch / Needs Testing 14439 Unable to get a post associated menu items for a specific menu Menus 3.1 normal major defect (bug) new has-patch 2010-07-28T03:32:06Z 2019-06-04T20:02:17Z "Hello, The actual wp_get_associated_nav_menu_items function works well but gets menu items associated with an object from ANY menu. So a parameter needs to be added to specify a specific menu to get menu items associated with an object from a specific menu. Patch is attached. The use of get_term() is needed because of the bug #14438" DreadLox 4 Has Patch / Needs Testing 28138 Updating menu item requires passing all of a menu item's data to wp_update_nav_menu_item() Menus 3.0 normal normal defect (bug) new has-patch 2014-05-05T18:59:53Z 2019-06-04T20:07:37Z "When using `wp_update_nav_menu_item()` to updating an existing menu item, you need to pass all data associated with a menu item in order to have the data persist. This is because the `$defaults` are set to default values, instead of the existing menu item values ([https://core.trac.wordpress.org/browser/tags/3.9/src/wp-includes/nav-menu.php#L323 ref]). If the menu item exists, the defaults should be set to the existing menu item values. Discovered in https://github.com/wp-cli/wp-cli/pull/1182" danielbachhuber 8 Has Patch / Needs Testing 34839 Wrong attribution of current_page_parent for menus when on single/archive CPT Menus 3.0 normal normal defect (bug) new has-patch 2015-12-03T16:21:15Z 2019-06-04T20:18:39Z "- When on a single CPT page, the menu item receiving the class '''current_page_parent''' is the blog archive page, and not the archive CPT page. - When on an archive CPT page that is in a submenu, the menu item receiving the class '''current_page_parent''' is the blog archive page, and not the parent menu item. Also, the parent menu item doesn't have the '''current-menu-parent''' and '''current-menu-ancestor''' classes. This plugin has some functions that deal with this issue, but it's probably something that should be fixed in core now since archive CPT page are available by default. [https://wordpress.org/plugins/sf-archiver/]" tabrisrp 6 Has Patch / Needs Testing 32918 "_wp_menu_item_classes_by_context does not generate ""current-menu-ancestor"" class when the menu structure was changed by e.g. a plugin" Menus 4.2.2 normal normal defect (bug) new has-patch 2015-07-08T08:50:27Z 2019-06-04T20:14:49Z "I am the developer of Category Posts in Custom Menu. My plugin extends Walker_Nav_Menu_Edit in order to change the menu structure. At the end of the edit loop, my plugin calls _wp_menu_item_classes_by_context on the resulting new menu structure. In a particular case, this results in a missing ""current-menu-ancestor"" class, because _wp_menu_item_classes_by_context retrieves the ancestors from the database (i.e. the unchanged menu structure) instead of from the $menu_items array that was passed in and may now reflect a different structure. Steps to reproduce with my plugin: - Appearances > Menus - Add to the menu a Page - Add to the menu, as child of Page, a Category that has posts - Check ""Create submenu containing links to posts in this category."" This will result in my plugin editing the menu structure, and adding all posts to the menu instead of a link to the Category. Now navigate to one of these posts. You will see that the Page does not receive the ""current-menu-ancestor"" class. I have performed a quick change in nav-menu-template.php that I have only tested with my plugin so far, so it will obviously need a rewrite. I'm attaching it nonetheless because it will quickly show in a few lines of code what took me a few paragraphs to explain here... :)" anaid 3 Has Patch / Needs Testing 14551 menu item : current_page_parent : issue with Front page displays Menus 3.0 normal normal defect (bug) reopened has-patch 2010-08-06T12:46:24Z 2019-06-04T20:02:18Z "Settings > Reading > Front page displays: set to your latest posts Settings > Reading > Posts page: set to anything When the menus are building, they are only checking that something was set by the dropdown for posts page, even though the parent setting says the posts are to be on the home page. The pages on the site have the correct logic, however the menu adds ""current_page_parent"" to the item selected in the ""Posts page"" menu, even though it's not really the parent. The work around is to just remember if you switch from having posts on a different page back to having them on the front, you need to set the ""Posts page"" back to ""select"" and everything works correctly, but getting users in my multi-site install to do that might be asking a bit much." hughestm@… 6 Has Patch / Needs Testing 17821 wp_get_nav_menu_object() doesn't check when passing to get_term() Menus 3.1.4 normal normal defect (bug) new has-patch 2011-06-17T00:02:14Z 2019-06-04T20:02:43Z `wp_get_nav_menu_object()` initially passes the menu string to `get_term()` to see if it's an ID. However, `get_term()` expects an integer or object and type-casts any non-objects passed into integers. This results in a menu name i.e. '10-ton elephant' being reduced to '10', which it then uses as a term ID, potentially producing unexpected results. kawauso 8 Has Patch / Needs Testing 18232 wp_nav_menu - Setting walker parameter affects fallback_cb Menus 3.2 normal normal defect (bug) new has-patch 2011-07-24T08:14:35Z 2019-06-04T20:02:49Z "When using the walker parameter with wp_nav_menu and there is no menu present, wp_nav_menu falls back by default (set with fallback_cb) to wp_page_menu. It appears that the set walker also affects wp_page_menu, which in most cases breaks the output. wp_nav_menu usage: {{{ new Walker_Nav_Menu)); ?> }}} Output when no menu is present (falling back on wp_page_menu): {{{ // Formatted for readability
}}} Expected output: {{{ // Formatted for readability
}}} As you can see, the output from wp_page_menu is getting filtered through the walker, but since the walker was designed for menus specifically, it renders the default output from wp_page_menu useless (empty tags..etc)." bryanjwatson 3 Has Patch / Needs Testing 19415 wp_nav_menu showing private/conctepts posts without rights Menus 3.0 normal major defect (bug) new has-patch 2011-12-02T18:11:06Z 2019-06-04T20:03:00Z "when you are using wordpress menus and you got your post/page in a menu (e.g. using Automatically add new top-level pages) and then change the post/page to concept or set it private, the link to post/page stays in the menu for all users, what may have some negative security concerns this error in all versions, including todays nightly IMO it should show only visible posts (if someone disagrees and need it for some backward compatibility, there may be some parameter, but imo hidding private/concept should be default)" thomask 4 Has Patch / Needs Testing 19264 Add get_nav_menu_item_children() Menus 3.0 normal normal enhancement reopened has-patch 2011-11-16T19:09:23Z 2019-06-04T20:02:58Z Just as get_page_children() exists, it would be good to have get_nav_menu_item_children(). Since the object is different the code get_page_children() needs to be slightly modified. wpsmith 2 Has Patch / Needs Testing 19514 Add per-page filter for nav menu post type meta box Menus normal normal enhancement new has-patch 2011-12-12T15:40:53Z 2019-06-04T20:03:04Z Currently, there is a default (50) for paginating Post Type Entries on the wp_nav_menu_item_post_type_meta_box(). While there are other ways to filter this, it would be great for larger sites or larger number of post objects to be able to increase this for UX reasons. wpsmith 4 Has Patch / Needs Testing 13998 Inconsistency in arguments when wp_nav_menu falls back to wp_page_menu chriscct7 Menus 3.0 normal normal enhancement reviewing has-patch 2010-06-19T15:22:58Z 2019-06-04T20:02:14Z "[http://codex.wordpress.org/Function_Reference/wp_nav_menu wp_nav_menu]'s 'menu_class' parameter applies the class to the