File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ <?xml version =" 1.0" ?>
2+ <documentation xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
3+ xsi : noNamespaceSchemaLocation =" https://phpcsstandards.github.io/PHPCSDevTools/phpcsdocs.xsd"
4+ title =" Slow DB Query"
5+ >
6+ <standard >
7+ <![CDATA[
8+ For performance reason, it's recommended to avoid doing lots of meta queries.
9+ The underlying SQL request generated by those queries can be extremely slow queries especially for complexe meta query.
10+ ]]>
11+ </standard >
12+ <code_comparison >
13+ <code title =" Valid: Using tax_query to retrieve a list of posts" >
14+ <![CDATA[
15+ $query = new WP_Query(
16+ array(
17+ 'tax_query' => array(
18+ array(
19+ 'taxonomy' => 'color',
20+ 'field' => 'slug',
21+ 'terms' => array(
22+ 'blue',
23+ 'red',
24+ )
25+ )
26+ )
27+ )
28+ );
29+ ]]>
30+ </code >
31+ <code title =" Invalid: Using meta_query to retrieve a list of posts" >
32+ <![CDATA[
33+ $query = new WP_Query(
34+ array(
35+ 'meta_query' => array(
36+ array(
37+ 'key' => 'color',
38+ 'compare' => 'IN',
39+ 'value' => array(
40+ 'blue',
41+ 'red',
42+ )
43+ )
44+ )
45+ )
46+ );
47+ ]]>
48+ </code >
49+ </code_comparison >
50+ <code_comparison >
51+ <code title =" Valid: in case of binary metadata (true/false) check if meta_key exist and remove it otherwise" >
52+ <![CDATA[
53+ // mark post 123 as "featured"
54+ update_post_meta( 123, 'is_featured', true );
55+
56+ // remove "featured" state for post 456
57+ delete_post_meta( 456, 'is_featured' );
58+
59+ $query = new WP_Query(
60+ array(
61+ 'meta_key' => 'is_featured'
62+ ),
63+ );
64+ ]]>
65+ </code >
66+ <code title =" Invalid: check for the value of a binary metadata, which is slower" >
67+ <![CDATA[
68+ // mark post 123 as "featured"
69+ update_post_meta( 123, 'is_featured', true );
70+
71+ // mark post 456 as not "featured"
72+ update_post_meta( 456, 'is_featured', false );
73+
74+ $query = new WP_Query(
75+ array(
76+ 'meta_key' => 'is_featured',
77+ 'meta_value' => true
78+ ),
79+ );
80+ ]]>
81+ </code >
82+ </code_comparison >
83+ </documentation >
You can’t perform that action at this time.
0 commit comments