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
1b91141437
WPDB: When attempting to fall back to ext/mysql
in db_connect()
, return the result of the fall back.
...
While it doesn't affect Core, we should also be passing the `$allow_bail` parameter, for anything that uses it differently.
Props markoheijnen, johnbillion.
Fixes #33105 .
Built from https://develop.svn.wordpress.org/trunk@34478
git-svn-id: http://core.svn.wordpress.org/trunk@34442 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-24 04:30:25 +00:00
Scott Taylor
84da11d918
Pass false
as the 2nd argument to class_exists()
to disable autoloading and to not cause problems for those who define __autoload()
.
...
Fixes #20523 .
Built from https://develop.svn.wordpress.org/trunk@34348
git-svn-id: http://core.svn.wordpress.org/trunk@34312 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-20 03:52:25 +00:00
Drew Jaynes
13c25f5f49
Docs: Put "it's" in its place (again).
...
Props kitchin.
Fixes #33894 .
Built from https://develop.svn.wordpress.org/trunk@34234
git-svn-id: http://core.svn.wordpress.org/trunk@34198 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-16 12:46:28 +00:00
Scott Taylor
128cc02f39
In wpdb::get_col_length()
, the final return false
is unreachable since the default switch
case returns.
...
See #33491 .
Built from https://develop.svn.wordpress.org/trunk@33956
git-svn-id: http://core.svn.wordpress.org/trunk@33925 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-09 00:48:26 +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
Gary Pendergast
eb99787e32
WPDB: get_table_from_query()
didn't find table names with hyphens in them.
...
Props dustinbolton for the fix.
Fixes #33470 .
Built from https://develop.svn.wordpress.org/trunk@33718
git-svn-id: http://core.svn.wordpress.org/trunk@33685 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-24 00:19:25 +00:00
Scott Taylor
029c274b86
In wpdb::get_col_length()
, break
s are not necessary when a case
returns
...
See #33491 .
Built from https://develop.svn.wordpress.org/trunk@33701
git-svn-id: http://core.svn.wordpress.org/trunk@33668 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-21 18:41:25 +00:00
Drew Jaynes
4770601d73
Docs: Standardize @deprecated
tag formatting in the DocBlocks for several wpdb
methods.
...
Props Alphawolf.
See #28806 .
Built from https://develop.svn.wordpress.org/trunk@33679
git-svn-id: http://core.svn.wordpress.org/trunk@33646 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-20 22:42:25 +00:00
Gary Pendergast
e6904bc0e8
WPDB: When checking the encoding of strings against the database, make sure we're only relying on the return value of strings that were sent to the database. Also make sure that we're not trying to sanity check strings that've been marked as not needing sanity checking.
...
Fixes #32279 .
Built from https://develop.svn.wordpress.org/trunk@33455
git-svn-id: http://core.svn.wordpress.org/trunk@33422 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-28 06:32:24 +00:00
Gary Pendergast
a6cb4b293c
WPDB: ::strip_text_from_query()
doesn't pass a length to ::strip_invalid_text()
, which was causing queries to fail when they contained characters that needed to be sanity checked by MySQL.
...
Props dd32, mdawaffe, pento.
Fixes #32279 .
Built from https://develop.svn.wordpress.org/trunk@33310
git-svn-id: http://core.svn.wordpress.org/trunk@33282 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-17 07:07:26 +00:00
Gary Pendergast
6759a210ca
WPDB: Remove some of the complexities in ::strip_invalid_text()
associated with switching character sets between queries. Instead of trying to dynamically change connection character sets, we now rely on the value of ::charset
. This also fixes the case where queries were being blocked when DB_CHARSET
was utf8
, but the column character set was non-utf8
.
...
Fixes #32165 .
Built from https://develop.svn.wordpress.org/trunk@33308
git-svn-id: http://core.svn.wordpress.org/trunk@33280 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-17 06:34:26 +00:00
Gary Pendergast
f28b182a7c
WPDB: When checking that text isn't too long to insert into a column, LONGTEXT
columns could fail, as their length is longer than PHP_INT_MAX
. Treating their length as a float
instead of an int
fixes this.
...
See #32165 .
Built from https://develop.svn.wordpress.org/trunk@33276
git-svn-id: http://core.svn.wordpress.org/trunk@33248 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-15 04:33:25 +00:00
Gary Pendergast
4ee0da1798
WPDB: When extracting the table name from a query, we had a 1000 character limit on the SQL string that would be searched. This was a hangover from when the code was imported from HyperDB, and isn't appropriate for Core, where a wider range of queries are likely to be run.
...
Fixes #32763
Built from https://develop.svn.wordpress.org/trunk@33259
git-svn-id: http://core.svn.wordpress.org/trunk@33231 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-14 10:19: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
Dominik Schilling
54424e9755
wpdb: Make "WordPress database error:" translatable.
...
props jrf.
see #32021 .
Built from https://develop.svn.wordpress.org/trunk@33006
git-svn-id: http://core.svn.wordpress.org/trunk@32977 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-30 20:00:25 +00:00
Scott Taylor
a0e373ef80
For doc block types, favor bool
over the few remaining boolean
s
...
See #32444 .
Built from https://develop.svn.wordpress.org/trunk@32964
git-svn-id: http://core.svn.wordpress.org/trunk@32935 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-27 01:03:25 +00:00
Scott Taylor
6ab487dde6
Add missing/alter existing doc blocks for wp-db.php
.
...
See #32444 .
Built from https://develop.svn.wordpress.org/trunk@32641
git-svn-id: http://core.svn.wordpress.org/trunk@32611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-28 20:10:29 +00:00
Scott Taylor
2f3e567f44
Alter visibility of some properties in wpdb
:
...
`num_queries` is accessed publicly in core.
`num_rows` is accessed publicly in `ms-settings.php`.
`insert_id` is accessed publicly in core.
`prefix` is accessed publicly in `upgrade.php` and `capabilities.php`.
See #32444 .
Built from https://develop.svn.wordpress.org/trunk@32640
git-svn-id: http://core.svn.wordpress.org/trunk@32610 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-28 16:34:25 +00:00
Scott Taylor
45d897d0e7
In wpdb::load_col_info()
, don't fetch the number of fields in the result row on each iteration of the for
loop. It can be stored in a var and referenced.
...
See #32444 .
Built from https://develop.svn.wordpress.org/trunk@32515
git-svn-id: http://core.svn.wordpress.org/trunk@32485 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-19 20:30:27 +00:00
Gary Pendergast
7ca423d449
The UTF-8 regex can occasionally fail on very low memory machines. Reduce the amount of memory it uses.
...
See #32204 .
Built from https://develop.svn.wordpress.org/trunk@32375
git-svn-id: http://core.svn.wordpress.org/trunk@32345 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-06 06:58:24 +00:00
Gary Pendergast
c24c5923c3
WPDB: When sanity checking query character sets, there's no need to check queries that don't return user data.
...
See #32104 .
Built from https://develop.svn.wordpress.org/trunk@32374
git-svn-id: http://core.svn.wordpress.org/trunk@32344 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-06 06:05:26 +00:00
Gary Pendergast
6e7fff514b
WPDB: Allow queries to reference tables in the dbname.tablename
format, and allow table names to contain any valid character, rather than just ASCII.
...
Props pento, willstedt for the initial patch.
See #32090 .
Built from https://develop.svn.wordpress.org/trunk@32368
git-svn-id: http://core.svn.wordpress.org/trunk@32338 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-06 05:01:26 +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
85d327d4bd
In [32299], we should be using mb_strlen()
for our string size checks.
...
Built from https://develop.svn.wordpress.org/trunk@32306
git-svn-id: http://core.svn.wordpress.org/trunk@32277 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-27 14:42:27 +00:00
Gary Pendergast
95d5fa28b4
WPDB: Sanity check that any strings being stored in the DB are not too long to store correctly.
...
Built from https://develop.svn.wordpress.org/trunk@32299
git-svn-id: http://core.svn.wordpress.org/trunk@32270 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-27 14:03:27 +00:00
Gary Pendergast
16bdf0ab2c
WPDB: When sanity checking a string by sending it to MySQL for conversion checks, the incorrect data structure was being returned from wpdb::strip_invalid_text()
, causing all write queries to fail for some character sets when the query contained non-ASCII characters.
...
See #32051 .
Built from https://develop.svn.wordpress.org/trunk@32261
git-svn-id: http://core.svn.wordpress.org/trunk@32232 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-22 15:02:28 +00:00
Gary Pendergast
5775586646
WPDB: When deciding if a query needs extra sanity checking based on collation, we can quickly return if the query is entirely ASCII characters.
...
See #32029 .
Built from https://develop.svn.wordpress.org/trunk@32233
git-svn-id: http://core.svn.wordpress.org/trunk@32207 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-21 05:24:26 +00:00
Gary Pendergast
6f38333ab2
WPDB: When deciding if a query needs extra sanity checking based on collation, we can quickly return if it's a query that will never return user data.
...
Fixes #32029 .
Built from https://develop.svn.wordpress.org/trunk@32232
git-svn-id: http://core.svn.wordpress.org/trunk@32206 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-21 05:11:27 +00:00
Gary Pendergast
2bbd21f543
WPDB: When sanity checking read queries, there are some collations we can skip, for improved performance.
...
Props pento, nacin.
See #21212 .
Built from https://develop.svn.wordpress.org/trunk@32162
git-svn-id: http://core.svn.wordpress.org/trunk@32137 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-20 04:46:25 +00:00
Dominik Schilling
64fc7294b6
Use HTTPS URLs for codex.wordpress.org.
...
see #27115 .
Built from https://develop.svn.wordpress.org/trunk@32116
git-svn-id: http://core.svn.wordpress.org/trunk@32095 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-12 21:29:32 +00:00
Drew Jaynes
8f0e359618
Remove unnecessary inline @see
tags from a variety of parameter and return descriptions in wp-includes/wp-db.php.
...
See #31888 .
Built from https://develop.svn.wordpress.org/trunk@32050
git-svn-id: http://core.svn.wordpress.org/trunk@32029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-05 17:17:27 +00:00
Drew Jaynes
777ad7647c
Remove unnecessary inline @see
tags from the wpdb::process_field_charsets()
DocBlock.
...
See [30345]. See #31888 .
Built from https://develop.svn.wordpress.org/trunk@32049
git-svn-id: http://core.svn.wordpress.org/trunk@32028 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-05 17:15:26 +00:00
Gary Pendergast
6a9d744b42
WPDB: When we check the character set of a column, and find that it's utf8mb4
, we should also check that the current connection supports utf8mb4
. It's possible that the environment may have changed since upgrading the DB, so we can fall back to utf8
when that happens.
...
Fixes #31771 .
Built from https://develop.svn.wordpress.org/trunk@31947
git-svn-id: http://core.svn.wordpress.org/trunk@31926 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-01 02:22:31 +00:00
Gary Pendergast
2a8a5c963a
WPDB: When we're checking to see if the MySQL client library supports utf8mb4
, we need a separate check for mysqlnd
versions, which using different version numbering to libmysqlclient
.
...
Props MattyRob.
Fixes #31644 .
Built from https://develop.svn.wordpress.org/trunk@31939
git-svn-id: http://core.svn.wordpress.org/trunk@31918 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-31 09:18:27 +00:00
Gary Pendergast
8c7ffba3b2
WPDB: HHVM doesn't support passing a DB link to mysqli_get_client_version()
. While we usually pass a DB link to every ext/mysql
and mysqli
function call, we don't really need to do that here, as there's no way for the client library to change mid page load.
...
Another fun fact is that `mysql_get_client_version()` doesn't exist, but `mysql_get_client_info()` (along with `mysqli_get_client_info()') do. So, we're switching to them, in order to add a pleasing symmetry to the client version check.
Fixes #31644
Built from https://develop.svn.wordpress.org/trunk@31783
git-svn-id: http://core.svn.wordpress.org/trunk@31763 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-15 12:20:26 +00:00
Gary Pendergast
980668299c
WPDB: When checking to see if we can use utf8mb4, we also need to make sure PHP's MySQL client library is capable of using utf8mb4.
...
See #21212
Built from https://develop.svn.wordpress.org/trunk@31391
git-svn-id: http://core.svn.wordpress.org/trunk@31372 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-09 22:28:28 +00:00
Gary Pendergast
04a0e21734
WPDB: The mysqli_query()
call in wpdb::set_charset()
had the parameters the wrong way around.
...
Built from https://develop.svn.wordpress.org/trunk@31374
git-svn-id: http://core.svn.wordpress.org/trunk@31355 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-09 01:26:29 +00:00
Gary Pendergast
55742904c0
WPDB: When we're removing invalid text text from strings with multiple different character sets, wpdb::strip_invalid_text()
wasn't correctly switching connection character sets.
...
Fixes #31262
Built from https://develop.svn.wordpress.org/trunk@31371
git-svn-id: http://core.svn.wordpress.org/trunk@31352 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-09 00:34:25 +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
d7a51b3fc2
Add missing descriptions to the $blogid
and $siteid
property DocBlocks in the wpdb
class.
...
Props ipm-frommen.
See #31008 .
Built from https://develop.svn.wordpress.org/trunk@31294
git-svn-id: http://core.svn.wordpress.org/trunk@31275 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-29 11:35:22 +00:00
Gary Pendergast
c777f6a29c
WPDB: When sanity checking a string, check that it's a string, first - PHP notices can occur if an array or object is handled like a string.
...
See #21212
Built from https://develop.svn.wordpress.org/trunk@31094
git-svn-id: http://core.svn.wordpress.org/trunk@31075 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 08:45:22 +00:00
Gary Pendergast
83a229084f
WPDB: When wpdb::query()
needs to sanity check a query string, make sure to run wpdb:flush()
afterwards, to ensure the results from sanity check queries aren't mixed up with the results for the user query.
...
See #21212 .
Fixes #30948 .
Built from https://develop.svn.wordpress.org/trunk@31093
git-svn-id: http://core.svn.wordpress.org/trunk@31074 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 08:32:22 +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
Gary Pendergast
0e806f1695
WPDB: To ensure we're not asking MySQL to read data using queries that it can't handle, make sure that we run all read queries through the character set sanity checks.
...
See #21212 .
Built from https://develop.svn.wordpress.org/trunk@31051
git-svn-id: http://core.svn.wordpress.org/trunk@31032 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-05 04:40:22 +00:00
Gary Pendergast
9704ee2a5c
WPDB Docs: Update the @since version from 4.1.0 to 4.2.0, for all the methods/members that were punted from 4.1.
...
See #21212 .
Built from https://develop.svn.wordpress.org/trunk@31050
git-svn-id: http://core.svn.wordpress.org/trunk@31031 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-05 03:51:22 +00:00
Drew Jaynes
7c01a454ce
Improve inline documentation for wpdb::has_cap()
.
...
Adds a changelog entry for the addition of the 'utf8mb4' feature, accepted values for `$db_cap`, and a return description.
Props kpdesign.
See #21212 .
Built from https://develop.svn.wordpress.org/trunk@30768
git-svn-id: http://core.svn.wordpress.org/trunk@30758 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-07 05:23:22 +00:00
Drew Jaynes
23707b1ada
Convert various uses of (optional)
in core parameter descriptions to use the style prescribed in the inline documentation standards for PHP.
...
The style for marking parameters optional in inline PHP docs is: `@param type $var Optional. Description. Accepts. Default.`, where Accepts can be omitted on a case-by-case basis.
Props coffee2code.
Fixes #30591 .
Built from https://develop.svn.wordpress.org/trunk@30753
git-svn-id: http://core.svn.wordpress.org/trunk@30743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-06 21:24:45 +00:00
Gary Pendergast
de6d84935f
WPDB: When looking up the character set for a table or column, make sure we send the table name to MySQL in the correct case, as MySQL can be configured with case sensitive table names.
...
Fixes #30538 .
Built from https://develop.svn.wordpress.org/trunk@30699
git-svn-id: http://core.svn.wordpress.org/trunk@30689 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-02 03:00:23 +00:00
Gary Pendergast
a0c12d0c61
WPDB: Before fetching results, make sure we have a valid result resource to fetch them from.
...
Fixes #27982 .
Built from https://develop.svn.wordpress.org/trunk@30677
git-svn-id: http://core.svn.wordpress.org/trunk@30667 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-01 00:03:22 +00:00