Commit Graph

32006 Commits

Author SHA1 Message Date
Scott Taylor
8646c8b93c Recent Comments Widget: a la [34464], this widget has the same mixed content issues. Remove the fragment caching. The comment queries are now split to scale. This was the only remaining widget with an HTML fragment cache.
Fixes #25556.

Built from https://develop.svn.wordpress.org/trunk@34581


git-svn-id: http://core.svn.wordpress.org/trunk@34545 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 06:01:26 +00:00
Scott Taylor
0405a03b5e XML-RPC: in wp_xmlrpc_server::wp_editTerm(), check ! empty when applying parent logic.
Adds unit tests.

Props hrishiv90, markoheijnen, sam2kb.
Fixes #21977.

Built from https://develop.svn.wordpress.org/trunk@34580


git-svn-id: http://core.svn.wordpress.org/trunk@34544 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 05:31:25 +00:00
Scott Taylor
80ac048cbc XML-RPC: upgrade the resposnse ofwp_xmlrpc_server::mw_newMediaObject() based on work down in 3.4 so that it runs the struct through ->_prepare_media_item().
Props markoheijnen.
Fixes #6430.

Built from https://develop.svn.wordpress.org/trunk@34579


git-svn-id: http://core.svn.wordpress.org/trunk@34543 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 05:15:25 +00:00
Scott Taylor
e9aa518f04 XML-RPC: move the malfunctioning 'overwrite' code from wp_xmlrpc_server::mw_newMediaObject(). This was suggested 3 years ago.
Props markoheijnen.
Fixes #17604.

Built from https://develop.svn.wordpress.org/trunk@34578


git-svn-id: http://core.svn.wordpress.org/trunk@34542 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 05:03:24 +00:00
Scott Taylor
b310f13c7b XML-RPC: add a wp_uploadFile unit test.
Props MikeHansenMe.
See #21292.

Built from https://develop.svn.wordpress.org/trunk@34577


git-svn-id: http://core.svn.wordpress.org/trunk@34541 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 04:58:28 +00:00
Scott Taylor
2f167faeb2 Cron: In spawn_cron(), when using ALTERNATE_WP_CRON, return early for any non-GET, instead of naively checking ! empty( $_POST ).
Props johnbillion, markoheijnen.
Fixes #27447.

Built from https://develop.svn.wordpress.org/trunk@34576


git-svn-id: http://core.svn.wordpress.org/trunk@34540 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 04:51:26 +00:00
Scott Taylor
ffe7f0ec5a XML-RPC: In wp_xmlrpc_server::wp_getComments(), allow post_type to be passed as part of $struct.
Props nprasath002.
Fixes #20026.

Built from https://develop.svn.wordpress.org/trunk@34575


git-svn-id: http://core.svn.wordpress.org/trunk@34539 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 04:45:25 +00:00
Scott Taylor
c8b308a647 XML-RPC: In wp_xmlrpc_server::wp_getUsersBlogs(), return the isPrimary flag for each blog.
Props SergeyBiryukov, daniloercoli.
Fixes #25958.

Built from https://develop.svn.wordpress.org/trunk@34574


git-svn-id: http://core.svn.wordpress.org/trunk@34538 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 04:35:25 +00:00
Scott Taylor
9b253bbc7b XML-RPC: In wp_xmlrpc_server::blogger_editPost(), make use of the $publish arg (the 6th arg passed to the method) to specify publish or draft. Restores the arg, which I removed in [31092], because it was unused cruft.
Props mdawaffe.
Fixes #10764.

Built from https://develop.svn.wordpress.org/trunk@34573


git-svn-id: http://core.svn.wordpress.org/trunk@34537 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 04:01:26 +00:00
Scott Taylor
dd1098e7c5 XML-RPC: In wp_xmlrpc_server::mw_newPost(), if $dateCreated is not set, don't set post_date and post_date_gmt. It calls wp_insert_post(), which will handle it correctly. The problem was drafts being created and GMT date being set. It shouldn't be.
Adds unit test.

Fixes #16985.

Built from https://develop.svn.wordpress.org/trunk@34572


git-svn-id: http://core.svn.wordpress.org/trunk@34536 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 03:38:25 +00:00
Scott Taylor
78d846289f XML-RPC: IXR_Server::output() is notoriously bad at returning the right value for the Content-Length HTTP header. This header is not required, so we will remove it.
"We could of course remove the content-length header as it is not required" was suggested 10 years ago. The IXR library is not maintained. Our release is the latest, which occurred in 2010.

Fixes #2567.

Built from https://develop.svn.wordpress.org/trunk@34571


git-svn-id: http://core.svn.wordpress.org/trunk@34535 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 03:11:24 +00:00
Scott Taylor
a0ccd4eae8 XML-RPC: wp.getComments should be allowed to return approved comments to those without the 'moderate_comments' cap.
Adds (rewrites) unit tests from 4 years ago that we never committed because....

Props wonderboymusic, koke, ericmann, nprasath002.
Fixes #17981.

Built from https://develop.svn.wordpress.org/trunk@34570


git-svn-id: http://core.svn.wordpress.org/trunk@34534 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 02:49:27 +00:00
Scott Taylor
fa90b77ba4 Comments: in WP_Comment::get_children(), accept an array so that the values for format, status, hierarchical, and orderby can be passed, instead of just format. The defaults for get_comments() include status = 'all' and orderby = '' - which is no bueno.
For threaded comments, we need comments to be retrieved within bounds, so logged-out users don't see unmoderated comments on the front end, etc.

Updates unit tests.

See #8071.

Built from https://develop.svn.wordpress.org/trunk@34569


git-svn-id: http://core.svn.wordpress.org/trunk@34533 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 02:25:26 +00:00
Aaron Jorbin
3a23190505 Stop hitting SVN for http tests
The automated tests can fail due to svn. Change the tests to use a WordPress CDN image.

see #33968


Built from https://develop.svn.wordpress.org/trunk@34568


git-svn-id: http://core.svn.wordpress.org/trunk@34532 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 00:40:24 +00:00
Aaron Jorbin
1bfb20ba2a Move travis secure token under rooms
Travis lint says it is dropping the secure token, hence not actually pinging slack. According to http://docs.travis-ci.com/user/notifications/#Slack-notifications what we encrypt *should* be usable under rooms.  Will this work?  I don't know, but YOLO.

Fixes #30755


Built from https://develop.svn.wordpress.org/trunk@34567


git-svn-id: http://core.svn.wordpress.org/trunk@34531 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-26 00:04:24 +00:00
John Blackbourn
aa35e473f7 callback is not a valid type in PHP, PSR-5, or phpDocumentor. callable should be used instead.
Fixes #34032

Built from https://develop.svn.wordpress.org/trunk@34566


git-svn-id: http://core.svn.wordpress.org/trunk@34530 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 23:58:25 +00:00
Drew Jaynes
3229785656 Docs: Fix the syntax for a mid-file sectional comment in wp-admin/includes/dashboard.php.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@34565


git-svn-id: http://core.svn.wordpress.org/trunk@34529 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 22:51:24 +00:00
Drew Jaynes
115c382132 Docs: Remove an inline comment duplicated by the DocBlock summary for wp_dashboard_trigger_widget_control().
Props tyxla.
Fixes #34014.

Built from https://develop.svn.wordpress.org/trunk@34564


git-svn-id: http://core.svn.wordpress.org/trunk@34528 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 22:50:26 +00:00
Weston Ruter
208330f2dc Customizer: Defer embedding widget controls to improve DOM performance and initial load time.
The Menu Customizer feature includes a performance technique whereby the controls for nav menu items are only embedded into the DOM once the containing menu section is expanded. This commit implements the same DOM deferral for widgets but goes a step further than just embedding the controls once the widget area's Customizer section is expanded: it also defers the embedding of the widget control's form until the widget is expanded, at which point the `widget-added` event also fires to allow any additional widget initialization to be done. The deferred DOM embedding can speed up initial load time by 10x or more. This DOM deferral also yields a reduction in overall memory usage in the browser process.

Includes changes to `wp_widget_control()` to facilitate separating out the widget form from the surrounding accordion container; also includes unit tests for this previously-untested function. Also included are initial QUnit tests (finally) for widgets in the Customizer.

Fixes #33901.

Built from https://develop.svn.wordpress.org/trunk@34563


git-svn-id: http://core.svn.wordpress.org/trunk@34527 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 21:02:27 +00:00
Boone Gorges
4e051fa421 After [35461], remove 'page_comments' from database.
* Don't set as part of initial schema.
* Delete as part of the `$unusedoptions` routine.

Props ocean90.
See #8071.
Built from https://develop.svn.wordpress.org/trunk@34562


git-svn-id: http://core.svn.wordpress.org/trunk@34526 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 20:50:25 +00:00
Boone Gorges
18d6b3c8dc Force comment pagination on single posts.
Previously, the 'page_comments' toggle allowed users to disable comment
pagination. This toggle was only superficial, however. Even with
'page_comments' turned on, `comments_template()` loaded all of a post's
comments into memory, and passed them to `wp_list_comments()` and
`Walker_Comment`, the latter of which produced markup for only the
current page of comments. In other words, it was possible to enable
'page_comments', thereby showing only a subset of a post's comments on a given
page, but all comments continued to be loaded in the background. This technique
scaled poorly. Posts with hundreds or thousands of comments would load slowly,
or not at all, even when the 'comments_per_page' setting was set to a
reasonable number.

Recent changesets have addressed this problem through more efficient tree-
walking, better descendant caching, and more selective queries for top-level
post comments. The current changeset completes the project by addressing the
root issue: that loading a post causes all of its comments to be loaded too.

Here's the breakdown:

* Comment pagination is now forced. Setting 'page_comments' to false leads to evil things when you have many comments. If you want to avoid pagination, set 'comments_per_page' to something high.
* The 'page_comments' setting has been expunged from options-discussion.php, and from places in the codebase where it was referenced. For plugins relying on 'page_comments', we now force the value to `true` with a `pre_option` filter.
* `comments_template()` now queries for an appropriately small number of comments. Usually, this means the `comments_per_page` value.
* To preserve the current (odd) behavior for comment pagination links, some unholy hacks have been inserted into `comments_template()`. The ugliness is insulated in this function for backward compatibility and to minimize collateral damage. A side-effect is that, for certain settings of 'default_comments_page', up to 2x the value of `comments_per_page` might be fetched at a time.
* In support of these changes, a `$format` parameter has been added to `WP_Comment::get_children()`. This param allows you to request a flattened array of comment children, suitable for feeding into `Walker_Comment`.
* `WP_Query` loops are now informed about total available comment counts and comment pages by the `WP_Comment_Query` (`found_comments`, `max_num_pages`), instead of by `Walker_Comment`.

Aside from radical performance improvements in the case of a post with many
comments, this changeset fixes a bug that caused the first page of comments to
be partial (`found_comments` % `comments_per_page`), rather than the last, as
you'd expect.

Props boonebgorges, wonderboymusic.
Fixes #8071.
Built from https://develop.svn.wordpress.org/trunk@34561


git-svn-id: http://core.svn.wordpress.org/trunk@34525 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 20:40:25 +00:00
Drew Jaynes
66242cbc98 Docs: Improve the method docs for the widget(), update(), form(), and __construct() methods in the WP_Widget base class.
See #34013. See #32246.

Built from https://develop.svn.wordpress.org/trunk@34560


git-svn-id: http://core.svn.wordpress.org/trunk@34524 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 20:31:24 +00:00
Scott Taylor
5ea01de963 XML-RPC: Introduce the concept of unit testing to wp_xmlrpc_server::wp_newComment():
* Don't allow comments to be created for posts that have `comment_status` set to `'closed'`
* Set some magic props on `WP_User` to vars before passing them to `wp_xmlrpc_server::escape()`

Props wonderboymusic, jesin.
Fixes #27471.

Built from https://develop.svn.wordpress.org/trunk@34559


git-svn-id: http://core.svn.wordpress.org/trunk@34523 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 20:20:23 +00:00
Aaron Jorbin
e6970878a0 Fix tabs vs spaces in .travis.yml
Introduced in [34555] . Bad Jorbin.


Built from https://develop.svn.wordpress.org/trunk@34558


git-svn-id: http://core.svn.wordpress.org/trunk@34522 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 20:13:24 +00:00
Weston Ruter
885944f79f Customizer: Fix usage of jQuery.contains() allowing active state changes to again animate control visibility.
Aligns usage of `jQuery.contains()` in a control's `onChangeActive` method with the existing usage in the corresponding `onChangeActive` method for panels and sections.

Props nikeo.
Fixes #33509.

Built from https://develop.svn.wordpress.org/trunk@34557


git-svn-id: http://core.svn.wordpress.org/trunk@34521 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 19:54:50 +00:00
Helen Hou-Sandí
e3dd4b7f4f Shortlinks: Hide the Get Shortlink button by default.
Shortlinks had their day in the popular usage sun before all these services moved to their own shorteners and running your own custom one became a lot easier. Shortlinks are still useful in some contexts, such as analytics or when links need to be shared verbally or copied down by hand.

If any filters are hooked onto `pre_get_shortlink` or `get_shortlink` and produce a non-empty value (with an exception described below), the button will magically reappear. This allows any custom shortlinks to keep the button without hiccups.

If you're in need of the default shortlinks, the fastest way to reenable them is `add_filter( 'pre_get_shortlink', '__return_false' )`. Note that it must return false in order to continue on to the rest of `wp_get_shortlink()`.

props grvrulz for the initial patch.
fixes #33495.

Built from https://develop.svn.wordpress.org/trunk@34556


git-svn-id: http://core.svn.wordpress.org/trunk@34520 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 19:54:25 +00:00
Aaron Jorbin
a6fecf0aa0 Add Travis Notifications to the #core channel on Slack
This is hopefully the final attempt at adding notifications to the #core channel on Slack. By default, Travis spams the channel. In order to cut that down a bit, notifications are set as follows:
 - On Failure: Always (If the tests fail, the world needs to know)
 - On Success: Change (this means that the first green run after a red run aka, the world is happy again)
 - On Start: Never (Travis runs every time there is a commit. No need for a notification)

Props Netweb, samuelsidler
Fixes #30755


Built from https://develop.svn.wordpress.org/trunk@34555


git-svn-id: http://core.svn.wordpress.org/trunk@34519 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 19:43:25 +00:00
Weston Ruter
aedb4c3ee2 Customizer: Flesh out phpdoc description for _wp_customize_include().
Also add brackets around single-statement inline `if` statement.

Fixes #33488.

Built from https://develop.svn.wordpress.org/trunk@34554


git-svn-id: http://core.svn.wordpress.org/trunk@34518 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 19:36:25 +00:00
Drew Jaynes
6f81ec0a2a Docs: Add a missing summary, version, and tag descriptions to the DocBlock for WP_Widget_Text::widget().
See #32246.

Built from https://develop.svn.wordpress.org/trunk@34553


git-svn-id: http://core.svn.wordpress.org/trunk@34517 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 19:24:24 +00:00
Drew Jaynes
54d5888688 Widgets: Pass $this to the widget_text filter to make targeting specific widget instances easier.
Also fixes docs errors in the type and description for the `$instance` parameter, introduced in [27697].

Fixes #24605.

Built from https://develop.svn.wordpress.org/trunk@34552


git-svn-id: http://core.svn.wordpress.org/trunk@34516 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 19:21:24 +00:00
John Blackbourn
a729efa688 Implement 'Recently Active' functionality for network-wide plugins in the Network Admin.
Fixes #20468
Thanks to WordCamp RI attendees for testing!

Built from https://develop.svn.wordpress.org/trunk@34551


git-svn-id: http://core.svn.wordpress.org/trunk@34515 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 19:16:27 +00:00
Boone Gorges
6ebc79e80c Hierarchical comment query tests should be order-agnostic.
Travis-CI and other test environments can create weird race conditions.

See #8071.
Built from https://develop.svn.wordpress.org/trunk@34550


git-svn-id: http://core.svn.wordpress.org/trunk@34514 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 15:29:23 +00:00
Boone Gorges
07dab62c98 Remove debug cruft, introduced in [34546].
Props ocean90.
See #8071.
Built from https://develop.svn.wordpress.org/trunk@34549


git-svn-id: http://core.svn.wordpress.org/trunk@34513 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 15:26:25 +00:00
Boone Gorges
d0185d4dde Normalize whitespace in WP_Comment_Query documentation.
Built from https://develop.svn.wordpress.org/trunk@34548


git-svn-id: http://core.svn.wordpress.org/trunk@34512 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 15:25:25 +00:00
Sergey Biryukov
105d99613a Plugin Editor: Don't split the strings with plugin file name and remove unnecessary context.
Partially reverts [34341].

Fixes #31862.
Built from https://develop.svn.wordpress.org/trunk@34547


git-svn-id: http://core.svn.wordpress.org/trunk@34511 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 15:19:24 +00:00
Boone Gorges
fc854a837f Introduce hierarchical query support to WP_Comment_Query.
Comments can be threaded. Now your query can be threaded too! Bonus: it's
not totally insane.

* The new `$hierarchical` parameter for `WP_Comment_Query` accepts three values:
  * `false` - Default value, and equivalent to current behavior. No descendants are fetched for matched comments.
  * `'flat'` - `WP_Comment_Query` will fetch the descendant tree for each comment matched by the query paramaters, and append them to the flat array of comments returned. Use this when you have a separate routine for constructing the tree - for example, when passing a list of comments to a `Walker` object.
  * `'threaded'` - `WP_Comment_Query` will fetch the descendant tree for each comment, and return it in a tree structure located in the `children` property of the `WP_Comment` objects.
* `WP_Comment` now has a few utility methods for fetching the descendant tree (`get_children()`), fetching a single direct descendant comment (`get_child()`), and adding anothing `WP_Comment` object as a direct descendant (`add_child()`). Note that `add_child()` only modifies the comment object - it does not touch the database.

Props boonebgorges, wonderboymusic.
See #8071.
Built from https://develop.svn.wordpress.org/trunk@34546


git-svn-id: http://core.svn.wordpress.org/trunk@34510 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 15:13:24 +00:00
Boone Gorges
4c18ad595e Improve status checks when sending comment post author notification.
[34537] hooked `wp_new_comment_notify_postauthor()` to the
'wp_set_comment_status' when a comment had been approved. When performing
multiple actions on a comment in the same request (as happens in
`Tests_Ajax_DeleteComment::test_ajax_trash_double_action()`, and may happen
sometimes in real life too), and when one of those actions involves deleting
the comment, the `$comment_ID` passed to `wp_new_comment_notify_postauthor()`
can correspond to an already-deleted comment. The `comment_status` check should
account for this possibility.

See #14078.
Built from https://develop.svn.wordpress.org/trunk@34545


git-svn-id: http://core.svn.wordpress.org/trunk@34509 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 14:43:24 +00:00
Boone Gorges
fea3051f54 Improve pagination internals in WP_Comment_Query.
`WP_Comment_Query` will now report the total number of comments matching the
query params (`comments_found`), as well as the total number of pages required
to display these comments (`max_num_pages`). Because `SQL_CALC_FOUND_ROWS`
queries can introduce a lot of overhead in some cases, we disable the feature
by default. Pass `no_found_rows=false` to `WP_Comment_Query` to enable the
count. (We use the negative parameter name 'no_found_rows' for parity with
`WP_Query`.)

Props wonderboymusic, boonebgorges.
See #8071.
Built from https://develop.svn.wordpress.org/trunk@34544


git-svn-id: http://core.svn.wordpress.org/trunk@34508 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 14:35:24 +00:00
John Blackbourn
c69ec5a19a Introduce a send_update_notification_email which controls whether an update notification email is sent for background updates. This filter allows control over each of the update types (plugin, theme, translation) and compliments the automatic_updates_send_debug_email and send_core_update_notification_email filters.
Fixes #33932
Props ronalfy

Built from https://develop.svn.wordpress.org/trunk@34543


git-svn-id: http://core.svn.wordpress.org/trunk@34507 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 14:29:23 +00:00
Boone Gorges
4b467a2698 Store SQL clauses in WP_Comment_Query property.
This small syntax change paves the way for some improvements related to #8071.
Built from https://develop.svn.wordpress.org/trunk@34542


git-svn-id: http://core.svn.wordpress.org/trunk@34506 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 14:09:25 +00:00
Scott Taylor
8a8e6557d0 Revisions: add a 'wp_prepare_revision_for_js' filter.
Props jtsternberg, adamsilverstein.
Fixes #28627.

Built from https://develop.svn.wordpress.org/trunk@34541


git-svn-id: http://core.svn.wordpress.org/trunk@34505 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 14:04:24 +00:00
Boone Gorges
1de01f31bc Don't run get_page_of_comment() cache test on Multisite.
`get_page_of_comment()` uses `get_option()`, and WP_INSTALLING earlier in the
test suite causes `get_option()` to miss the cache. See #31130.

See #11334.
Built from https://develop.svn.wordpress.org/trunk@34540


git-svn-id: http://core.svn.wordpress.org/trunk@34504 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 13:55:25 +00:00
Scott Taylor
fa58223b49 Profile: when clicking "Generate Password", toggling visibility, then canceling, ensure that the UI resets properly for when the "Generate Password" button is clicked again.
Props umesh.nevase.
Fixes #33897.

Built from https://develop.svn.wordpress.org/trunk@34539


git-svn-id: http://core.svn.wordpress.org/trunk@34503 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 13:54:24 +00:00
Boone Gorges
ff7df78e04 Bust term query cache when modifying term meta.
The 'last_changed' incrementor is used to invalidate the `get_terms()` query
cache. Since `get_terms()` queries may reference 'meta_query', changing term
metadata could change the results of the queries. So we invalidate the cache
on add, delete, and update.

See #10142.
Built from https://develop.svn.wordpress.org/trunk@34538


git-svn-id: http://core.svn.wordpress.org/trunk@34502 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 13:47:25 +00:00
Boone Gorges
eaaabd4105 Send comment approval notification to post author via hook.
This is part of the project of #33587.

Moving this particular message to the
'wp_set_comment_status' action has the added bonus that the notification is
sent after the comment status has been updated in the database. Previously, a
database error could lead to a case where an approval notification is sent,
but the comment status change fails for some reason.

Props mrmist, NickDuncan.
Fixes #14078.
Built from https://develop.svn.wordpress.org/trunk@34537


git-svn-id: http://core.svn.wordpress.org/trunk@34501 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 05:37:25 +00:00
Boone Gorges
cb586896c6 Introduce 'duplicate_comment_id' filter.
`wp_allow_comment()` disallows a comment if it matches a comment on the same
post with the same content, author email, and parent. This new filter allows
developers to circumvent or modify this logic, making the duplicate check
more or less lenient, as they see fit.

Fixes #9775.
Built from https://develop.svn.wordpress.org/trunk@34536


git-svn-id: http://core.svn.wordpress.org/trunk@34500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 05:23:28 +00:00
Boone Gorges
e2c57a9451 Use WP_Comment_Query in get_page_of_comment().
This change allows `get_page_of_comment()` to use `WP_Comment_Query`'s native
caching mechanisms.

Props boonebgorges, Viper007Bond, wmertens, jeremyfelt.
Fixes #11334.
Built from https://develop.svn.wordpress.org/trunk@34535


git-svn-id: http://core.svn.wordpress.org/trunk@34499 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 05:11:25 +00:00
Boone Gorges
fd946a9b5a Pinking shears.
Built from https://develop.svn.wordpress.org/trunk@34534


git-svn-id: http://core.svn.wordpress.org/trunk@34498 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 04:44:25 +00:00
Boone Gorges
2370a81286 Allow metadata to be attached to comment at time of creation.
The new `$comment_meta` parameter of `wp_insert_comment()` allows an array of
key/value pairs to be passed when creating a comment. These pairs are then
stored as commentmeta when the comment has been created.

Props tellyworth, wonderboymusic.
Fixes #12431.
Built from https://develop.svn.wordpress.org/trunk@34533


git-svn-id: http://core.svn.wordpress.org/trunk@34497 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 04:41:25 +00:00
Boone Gorges
7c0ff60cb8 After [34529], fix multisite site creation test.
The test `Tests_Multisite_Site::test_created_site_details()` checks for tables
that should be empty on a newly created MS site. `termmeta` is now one of those
tables.

See #10142.
Built from https://develop.svn.wordpress.org/trunk@34532


git-svn-id: http://core.svn.wordpress.org/trunk@34496 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 04:32:27 +00:00