Commit Graph

292 Commits

Author SHA1 Message Date
Boone Gorges 8b4a5d1ec0 Introduce metadata for taxonomy terms.
Adds a new table to the database schema (`wp_termmeta`), and a set of
`*_term_meta()` API functions. `get_terms()` and `wp_get_object_terms()`
now also support 'meta_query' parameters, with syntax identical to other
uses of `WP_Meta_Query`.

When fetching terms via `get_terms()` or `wp_get_object_terms()`, metadata for
matched terms is preloaded into the cache by default. Disable this behavior
by setting the new `$update_term_meta_cache` paramater to `false`.

To maximize performance, within `WP_Query` loops, the termmeta cache is *not*
primed by default. Instead, we use a lazy-loading technique: metadata for all
terms belonging to posts in the loop is loaded into the cache the first time
that `get_term_meta()` is called within the loop.

Props boonebgorges, sirzooro.
See #10142.
Built from https://develop.svn.wordpress.org/trunk@34529


git-svn-id: http://core.svn.wordpress.org/trunk@34493 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 03:59:27 +00:00
Gary Pendergast 0d85038ce6 Schema: Increase the length of `wp_options.option_name`.
It's pretty easy to run over the `option_name` length, which causes undefined behaviour when inserting and retrieving options. Increasing the length from `VARCHAR(64)` to `VARCHAR(191)` significantly reduces the risk of this occurring.

Because `option_name` has a `UNIQUE` index, we can only increase it to 191 characters, rather than 255. The index can only use a prefix of 191 characters, so will incorrectly restrict long different strings that have the same prefix, if we make the column longer.

Props scribu, OriginalEXE, khromov, MikeHansenMe, netweb, pento.

Fixes #13310.


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


git-svn-id: http://core.svn.wordpress.org/trunk@33999 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-11 01:26:24 +00:00
Scott Taylor ef87172270 `foreach` is a statement, not a function.
See #33491.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-25 20:28:22 +00:00
Dion Hulse 4f8ce1c232 Term Splitting: Switch to a faster cron unschedule process to benefit sites with thousands of affected jobs. Fix the cron hook name in the failsafe rescheduler.
Props Otto42, dd32, peterwilsoncc
See #33423

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


git-svn-id: http://core.svn.wordpress.org/trunk@33695 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-25 04:32:21 +00:00
Scott Taylor e9305edbce When createing "Sample Page" on install, comments should be `closed`.
Props macmanx. 
Fixes #33490.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33660 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-21 17:42:25 +00:00
Dion Hulse 25c5d372d3 Term Splitting: Fix a reversal of parameters to wp_schedule_single_event() introduced in [33621].
The existing invalid cron entries will not be purged automatically (as the 'timestamp' is never matched) so we do this ourselves.

Props mechter for noticing!
See #30261.
Fixes #33423 for trunk.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33613 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-19 11:31:26 +00:00
Dominik Schilling 96a6f0ac1f Pinking shears.
Built from https://develop.svn.wordpress.org/trunk@33627


git-svn-id: http://core.svn.wordpress.org/trunk@33594 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-17 21:39:25 +00:00
Boone Gorges dba7c50d29 Don't run term-splitting routine on new installations.
Props pento.
Fixes #30261.
Built from https://develop.svn.wordpress.org/trunk@33621


git-svn-id: http://core.svn.wordpress.org/trunk@33588 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-17 14:29:25 +00:00
Boone Gorges 151d27369d Term splitting routine should be run in a separate process, triggered via wp-cron.
[32814] introduced a routine to split shared terms, which was run during the
regular WP database upgrade. This turned out to be problematic because plugins
are not loaded during the db upgrade (due to `WP_INSTALLING`), with the result
that plugins were not able to hook into the 'split_shared_term' action during
the bulk split. We work around this limitation by moving the term splitting
routine to a separate process, triggered by a wp-cron hook.

Props boonebgorges, Chouby, peterwilsoncc, pento, dd32.
Fixes #30261.
Built from https://develop.svn.wordpress.org/trunk@33615


git-svn-id: http://core.svn.wordpress.org/trunk@33582 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-14 03:59:26 +00:00
Andrew Ozz 3bfd096440 Fix paste typos in upgrade.php.
Props tellyworth. Fixes #33206.
Built from https://develop.svn.wordpress.org/trunk@33609


git-svn-id: http://core.svn.wordpress.org/trunk@33576 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-11 23:44:24 +00:00
Dion Hulse e2b10dad49 Upgrade: Skip the sitecategories table when it doesn't exist (Global Terms is disabled).
Props nofearinc, obenland, SergeyBiryukov, and pento.
Fixes #33206

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


git-svn-id: http://core.svn.wordpress.org/trunk@33564 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-09 02:22:26 +00:00
Drew Jaynes e4ecc7e5c4 Fix summaries and add missing `@global` descriptions to the `upgrade_430_fix_comments()` and `split_all_shared_terms()` functions added in 4.3.
See [33020], [32643]. See #32891.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33184 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-13 19:56:24 +00:00
Dion Hulse 36de491d68 Don't upgrade global tables to utf8mb4 when `wp_should_upgrade_global_tables()` says not to.
Additionally fixes an incorrect conditional in [33057] which would result in the usermeta index being altered twice on Multisite updates.

See #32154

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


git-svn-id: http://core.svn.wordpress.org/trunk@33029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-03 05:44:24 +00:00
Dion Hulse d651de0dac Introduce `wp_should_upgrade_global_tables()` to determine if global tables should be upgraded automatically. Use it throughout the existing upgrade routines.
Props johnjamesjacoby for initial patch
Fixes #32154 for trunk

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


git-svn-id: http://core.svn.wordpress.org/trunk@33028 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-03 04:34:24 +00:00
Dion Hulse cbacb92dae Enable utf8mb4 for MySQL extension users. Previously utf8mb4 was limited to MySQLi users only unintentionally.
This change does the following things
 * Allows utf8mb4 for the MySQL extension
 * Re-runs the utf8->utf8mb4 conversion for single sites, this will do nothing for tables already converted
 * Re-runs the utf8->utf8mb4 conversion for global tables in multisite when the environment supports utf8mb4
 * Removes upgrade_420() calling as upgrade_430() will perform those changes now instead

The index shortenings should have still taken place on utf8 sites previously, so there's no need to run those again. 

Props kovshenin, pento, dd32
Fixes #32127 for trunk.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33026 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-03 03:26:24 +00:00
Dion Hulse ebb6aa1d4a Split `upgrade_430()` into two so that `split_all_shared_terms()` runs when `upgrade_430_fix_comments()` bails early.
See [32814], #30261, [32364], #32165

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


git-svn-id: http://core.svn.wordpress.org/trunk@32991 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-01 07:35:24 +00:00
Dion Hulse a21f890abb Remove a redundant index drop, it'll be dropped and re-created a few lines further down.
Fixes a warning during updating from 4.0 or earlier.
Fixes #31388 for trunk

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


git-svn-id: http://core.svn.wordpress.org/trunk@32823 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-19 03:18:26 +00:00
Boone Gorges f62bf61b2c Bail out of 4.3 term splitting routine when no shared terms are found.
Props dd32.
See #30261.
Built from https://develop.svn.wordpress.org/trunk@32819


git-svn-id: http://core.svn.wordpress.org/trunk@32790 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-17 11:40:24 +00:00
Boone Gorges 290044ef15 Split all shared taxonomy terms on upgrade to 4.3.
Dear Shared Terms, Welcome to Splitsville. Population: You.

See #30261.
Built from https://develop.svn.wordpress.org/trunk@32814


git-svn-id: http://core.svn.wordpress.org/trunk@32785 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-17 01:53:26 +00:00
Andrew Nacin e7f618d86e Tweak the first post/page content to get with the times.
props chriscct7.
fixes #22474.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32739 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-14 18:56:50 +00:00
Scott Taylor c6a4512b1b Add missing doc blocks to `wp-admin/includes/*`.
Fix some egregious uses of tabbing.
Some functions can simply return `apply_filters(...)` instead of setting a variable that is immediately returned.

See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-29 20:17:26 +00:00
Scott Taylor 282e28ad81 Add `@global` annotations to (the rest of the?) `wp-admin/*` files.
Does not include list table file changes.

See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32613 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-29 02:06:31 +00:00
Gary Pendergast 02621f2a14 Upgrades: If a table has already been converted to `utf8mb4`, there's no need to try and convert it again.
Props gabrielperezs for the initial patch.

See #32310.


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


git-svn-id: http://core.svn.wordpress.org/trunk@32426 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-08 12:22:25 +00:00
Michael Adams a3807c1d34 Upgrade: Since MySQL may auto-expand column widths when changing a column's character set, we must do our length-based comment checks prior to the character set changes.
Props jorbin, et alii.

See #32165.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32410 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-07 01:11:29 +00:00
Michael Adams 26c3c6d9cb Upgrade: `$wpdb->get_col_length()` sanity check: bail on unexpected return value.
See #32165.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32399 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-06 23:11:26 +00:00
Michael Adams 0640526e72 Upgrade: Ensure unintelligible DB schemas don't result in content loss.
See #32165.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32387 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-06 21:46:26 +00:00
Gary Pendergast 4e615fb9ff Fix an incorrect version number check in [32378].
See #32099.


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


git-svn-id: http://core.svn.wordpress.org/trunk@32349 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-06 07:41:24 +00:00
Gary Pendergast 3a6e79c409 Upgrades: When converting to `utf8mb4`, we were trying to change the wrong index on `wp_signups`, causing the conversion to later fail.
Props kovshenin, pento.

See #32099.


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


git-svn-id: http://core.svn.wordpress.org/trunk@32348 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-06 07:34:24 +00:00
Gary Pendergast 364886a5be WPDB: When checking that a string can be sent to MySQL, we shouldn't use `mb_convert_encoding()`, as it behaves differently to MySQL's character encoding conversion.
Props mdawaffe, pento, nbachiyski, jorbin, johnjamesjacoby, jeremyfelt.

See #32165.


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


git-svn-id: http://core.svn.wordpress.org/trunk@32335 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-06 03:00:25 +00:00
Gary Pendergast 44b56d9393 When deleting suspicious comments, do so permanently.
Built from https://develop.svn.wordpress.org/trunk@32310


git-svn-id: http://core.svn.wordpress.org/trunk@32281 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-27 16:11:26 +00:00
Gary Pendergast b89fc65951 [32308] was for 4.3, not 4.2.1.
Built from https://develop.svn.wordpress.org/trunk@32309


git-svn-id: http://core.svn.wordpress.org/trunk@32280 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-27 16:08:27 +00:00
Gary Pendergast 51402dc520 When upgrading to 4.2.1, delete suspicious comments.
Built from https://develop.svn.wordpress.org/trunk@32308


git-svn-id: http://core.svn.wordpress.org/trunk@32279 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-27 16:04:25 +00:00
Gary Pendergast 0179958273 When `dbDelta()` is checking whether an index is defined in a `CREATE TABLE` statement, don't worry if MySQL has a subpart defined on an index, but the `CREATE TABLE` doesn't.
Fixes #31869.


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


git-svn-id: http://core.svn.wordpress.org/trunk@32087 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-11 10:40:31 +00:00
Sergey Biryukov 443760252b `wp_install_maybe_enable_pretty_permalinks()` should have a consistent `@return` value.
props DrewAPicture.
fixes #6481. see #31888.
Built from https://develop.svn.wordpress.org/trunk@32027


git-svn-id: http://core.svn.wordpress.org/trunk@32006 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-05 14:49:53 +00:00
Gary Pendergast d7c6ac95bc Upgrades: wp_usermeta is a global table in multisite, so it should only be upgraded by the single site routines when we're not in a multisite install.
See #21212


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


git-svn-id: http://core.svn.wordpress.org/trunk@31339 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-06 13:41:22 +00:00
Gary Pendergast 7444799a82 Upgrades: When upgrading a table to utf8mb4, we should run the `ALTER TABLE` query, even if it doesn't have any text columns. This will update the table's default character set, so that any text columns added in the future will have the expected character set.
See #21212 


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


git-svn-id: http://core.svn.wordpress.org/trunk@31335 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-06 05:59:23 +00:00
Gary Pendergast 555a9f0912 Upgrades: When deciding if we can upgrade a table to utf8mb4, make sure we're checking the character set, not the collation.
Bump the DB version as well, as the update in [31349] wouldn't have triggered for anyone who tried it.

See #21212


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


git-svn-id: http://core.svn.wordpress.org/trunk@31332 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-06 05:26:21 +00:00
Gary Pendergast b2cf823105 WPDB: If a site is using the `utf8` charset, and their version of MySQL supports `utf8mb4`, auto-upgrade them to `utf8mb4`.
This patch also resizes some indexes, to allow for the 767 byte index size limit in standard MySQL installs.

See #21212


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


git-svn-id: http://core.svn.wordpress.org/trunk@31330 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-06 04:51:22 +00:00
Drew Jaynes d95586e943 Add missing summaries and descriptions for various functions in wp-admin/includes/upgrade.php.
Also generally improve existing parameter, return, and other documentation in various function DocBlocks.

Props morganestes.
Fixes #30825.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31227 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-19 09:15:22 +00:00
Sergey Biryukov 768624cb99 Use the site's local time to create the first post during installation.
props extendwings.
fixes #29296.
Built from https://develop.svn.wordpress.org/trunk@31225


git-svn-id: http://core.svn.wordpress.org/trunk@31206 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-17 10:07:23 +00:00
Scott Taylor b8dd1f9c69 By initializing this array before a loop, Scrutinizer reports 0 (zero) "Coding Style" errors.
There are plenty of other kinds of errors, but this label will be cleared out.

See #30799.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31194 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-16 19:13:23 +00:00
Dion Hulse af92025162 More concise documentation for wp_install_maybe_enable_pretty_permalinks()
See #6481. Props ericlewis.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31141 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-12 04:33:23 +00:00
Dion Hulse a114d0929b The new wp_install_maybe_enable_pretty_permalinks() function doesn't need to be pluggable.
See #6481. Props nacin, valendesigns

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


git-svn-id: http://core.svn.wordpress.org/trunk@31140 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-12 04:31:23 +00:00
Scott Taylor 60b0cd7943 The keyword `elseif` should be used instead of `else if` so that all control keywords look like single words.
This was a mess, is now standardized across the codebase, except for a few 3rd-party libs. 

See #30799.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31071 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 07:05:25 +00:00
Dion Hulse a4ed093250 Enable Pretty Permalinks for new sites during install if the server supports it.
See #6481, Props valendesigns, DrewAPicture & ericlewis

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


git-svn-id: http://core.svn.wordpress.org/trunk@31070 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 06:47:23 +00:00
Scott Taylor 5eb5afac34 For clarity, initialize some arrays that previously were only assigned via short circuit in loops.
See #30799.

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


git-svn-id: http://core.svn.wordpress.org/trunk@30968 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-20 22:47:22 +00:00
Andrew Nacin 1cf7a49ffd Adjust [29806] and revert [29807] to restore placeholder and email copy order.
Avoids unnecessarily changing a (large, carefully formatted) translated string from 4.0.

fixes #21089.

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


git-svn-id: http://core.svn.wordpress.org/trunk@30732 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-05 01:15:26 +00:00
Scott Taylor 2c32752abd Improve various `@param` docs for `src/wp-admin/*`.
See #30224.

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


git-svn-id: http://core.svn.wordpress.org/trunk@30670 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-01 01:00:22 +00:00
Scott Taylor 7d7a8aa0eb Correct all `@return unknown` instances.
See #30224.

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


git-svn-id: http://core.svn.wordpress.org/trunk@30202 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-03 06:17:22 +00:00
Scott Taylor 5a3256c00b Fill in the `@param` types for the args for `make_site_theme_from_default()`.
See #30224.

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


git-svn-id: http://core.svn.wordpress.org/trunk@30195 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-03 05:43:21 +00:00