Commit Graph

295 Commits

Author SHA1 Message Date
Sergey Biryukov
3c7b7f7133 After [34529], if a compatible termmeta table is found on database upgrade, convert it to utf8mb4 collation.
Props dboulet.
Fixes #34224.
Built from https://develop.svn.wordpress.org/trunk@34978


git-svn-id: http://core.svn.wordpress.org/trunk@34943 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-09 02:07:25 +00:00
Jeremy Felt
9926983b66 Revert [34778], continue using _site_option() for the current network.
The `_network_option()` parameter order will be changing to accept `$network_id` first. The `_site_option()` functions will remain in use throughout core as our way of retrieving a network option for the current network.

See #28290.

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


git-svn-id: http://core.svn.wordpress.org/trunk@34877 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-07 17:11:25 +00:00
Jeremy Felt
54512d64cb MS: Use *_network_option() functions throughout core.
Replaces all uses of `*_site_option()` with the corresponding "network" function.

This excludes one usage in `wp-admin/admin-footer.php` that needs more investigation.

Props spacedmonkey.
See #28290.

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


git-svn-id: http://core.svn.wordpress.org/trunk@34743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-02 19:08:26 +00:00
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