Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Tax Query Π² WordPress? ΠΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
ΠΠ°ΠΏΡΠΎΡ tax query Π² WordPress β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΠ»ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΉ Π² WP_Query, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°ΠΌ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, tax query ΡΡΠΆΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ ΡΠ΅Ρ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΡΡΠΈ ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°ΠΌΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ β Π±ΡΠ΄Ρ ΡΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π°Π³ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡΠΌ.
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅: Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΠΈ Ρ ΡΠ΅Π³ΠΎΠΌ Β«web-developmentΒ», ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ Β«project-typeΒ» Ρ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ Β«client-workΒ», tax query β ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ SQL ΡΠ΅ΡΠ΅Π· ΠΊΠ»Π°ΡΡ WP_Tax_Query WordPress, Π³Π΅Π½Π΅ΡΠΈΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ JOIN ΠΈ WHERE Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡ wp_term_relationships ΠΈ wp_term_taxonomy.
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΉ ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² Π² WordPress
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ ΠΊΠΎΠ΄Π° Π·Π°ΠΏΡΠΎΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π»Π΅ΠΆΠ°ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ .
Π’Π°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ β ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. WordPress ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π΄Π²ΡΠΌΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡΠΌΠΈ β category ΠΈ post_tag β Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΡ register_taxonomy() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
. Π’Π°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡ β ΡΡΠΎ ΠΏΠΎ ΡΡΡΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ.
Π’Π΅ΡΠΌΠΈΠ½Ρ β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ. Π ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ category ΡΠ΅ΡΠΌΠΈΠ½Ρ β ΡΡΠΎ Β«Π’Π΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΒ», Β«ΠΠ±ΡΠ°Π· ΠΆΠΈΠ·Π½ΠΈΒ» ΠΈ Β«ΠΠΈΠ·Π½Π΅ΡΒ». ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ Π°Π΄ΡΠ΅ΡΡΠ΅ΠΌΡΡ
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°:
term_idβ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Π²wp_terms
slug β URL-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, web-development)
name β ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠ°Ρ ΠΌΠ΅ΡΠΊΠ°
Π‘Π²ΡΠ·ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² β ΡΡΠΎ ΡΠ²ΠΎΠ΄Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² wp_term_relationships, ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ ID ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°ΠΏΠΈΡΠΈ Ρ ID ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°. ΠΡΠ±ΠΎΠΉ tax query Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΡΡΠ΅ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΠΎΠΈΡΠΊΡ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅.
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΡΡ
ΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ β ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡ > ΡΠ΅ΡΠΌΠΈΠ½ > ΡΠ²ΡΠ·Ρ ΡΠ΅ΡΠΌΠΈΠ½Π° β Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΡ
ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΡ
Π½Π°Π±ΠΎΡΠΎΠ².
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° tax_query
ΠΠ»ΡΡ tax_query ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π·Π°ΠΏΡΠΎΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ relation Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ:
ΠΡΠ³ΡΠΌΠ΅Π½Ρ
Π’ΠΈΠΏ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
—
—
—
—
`taxonomy`
string
Π’Π°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ°
`category`, `post_tag`, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ»Π°Π³
`field`
string
ΠΠΎΠ»Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π° Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
`slug`, `name`, `term_id`, `term_taxonomy_id`
`terms`
string / int / array
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅(Ρ) ΡΠ΅ΡΠΌΠΈΠ½Π° Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
`'technology'`, `[4, 7]`, `'web-dev'`
`operator`
string
Π‘ΠΏΠΎΡΠΎΠ± ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°
`IN`, `NOT IN`, `AND`, `EXISTS`, `NOT EXISTS`
`include_children`
bool
ΠΠΊΠ»ΡΡΠ°ΡΡ Π»ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΉ)
`true` (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), `false`
`relation`
string
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅Π»Ρ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ
`AND`, `OR`
ΠΡΠ³ΡΠΌΠ΅Π½Ρ operator ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ
ΠΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
IN (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ *Π»ΡΠ±ΠΎΠΌΡ* ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ². ΠΡΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ OR Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ.
NOT IN β ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π»ΡΠ±ΠΎΠΌΡ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ².
AND β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ *Π²ΡΠ΅ΠΌ* ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°ΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π³ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
EXISTS β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ *Π»ΡΠ±ΠΎΠΉ* ΡΠ΅ΡΠΌΠΈΠ½ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ terms ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ.
NOT EXISTS β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ Π±Π΅Π· Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π° Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ. ΠΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π±Π΅Π· ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΎΠ².
ΠΠ°ΠΆΠ½ΡΠΉ Π½ΡΠ°Π½Ρ: operator => 'AND' Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ ΠΎΠ΄Π½Π° Π·Π°ΠΏΠΈΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ΅ΡΠΌΠΈΠ½Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ terms. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ relation => 'AND' Π½Π° Π²Π΅ΡΡ
Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ. ΠΡΡΠ°Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°ΠΌΠΈ β ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ tax query Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ WordPress.
ΠΠ°Π·ΠΎΠ²ΡΠΉ tax query: ΡΠΈΠ»ΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ β ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Β«Π’Π΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΒ»:
$args = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'technology',
),
),
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
// Render post content here
}
wp_reset_postdata();
}
ΠΡΠ΅Π³Π΄Π° Π²ΡΠ·ΡΠ²Π°ΠΉΡΠ΅ wp_reset_postdata() ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° WP_Query. ΠΠ΅Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π°Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ $post, ΡΡΠΎ Π½Π°ΡΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ΅Π³ΠΎΠ² ΡΠ°Π±Π»ΠΎΠ½Π°, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ the_title() ΠΈ get_the_ID(), Π΄Π»Ρ Π»ΡΠ±ΡΡ
ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
tax query Ρ ΠΏΠΎΠΌΠΎΡΡΡ relation
ΠΠ»ΡΡ relation Π½Π° Π²Π΅ΡΡ
Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° tax_query ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ:
$args = array(
'post_type' => 'post',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'technology',
),
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => 'web-development',
),
),
);
ΠΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ *ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ* Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Β«Π’Π΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΒ» ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π³ Β«web-developmentΒ». ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ relation Π½Π° 'OR', ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π»ΡΠ±ΠΎΠΌΡ ΠΈΠ· ΡΡΠ»ΠΎΠ²ΠΈΠΉ.
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ tax query (WordPress 4.1+)
ΠΠ»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ WordPress ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ tax_query, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΡΡΠΎΠΈΡΡ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ Π±ΡΠ»Π΅Π²Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ:
$args = array(
'post_type' => 'product',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'laptops', 'desktops' ),
'operator' => 'IN',
),
array(
'relation' => 'OR',
array(
'taxonomy' => 'product_tag',
'field' => 'slug',
'terms' => 'sale',
),
array(
'taxonomy' => 'availability',
'field' => 'slug',
'terms' => 'in-stock',
),
),
),
);
ΠΡΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΡΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡ
Β«ΠΠΎΡΡΠ±ΡΠΊΠΈΒ» ΠΈΠ»ΠΈ Β«ΠΠ°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡΒ», ΠΊΠΎΡΠΎΡΡΠ΅ *ΡΠ°ΠΊΠΆΠ΅* Π»ΠΈΠ±ΠΎ ΡΠ°ΡΠΏΡΠΎΠ΄Π°ΡΡΡΡ, Π»ΠΈΠ±ΠΎ Π΅ΡΡΡ Π² Π½Π°Π»ΠΈΡΠΈΠΈ. Π’Π°ΠΊΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° relation β Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠ²Π»ΡΡΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ
Tax query ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΌΠΎΡΠ½ΡΠΌΠΈ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· register_post_type(), ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· register_taxonomy(). Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΉΡ-ΠΏΠΎΡΡΡΠΎΠ»ΠΈΠΎ, Π³Π΄Π΅ Π²Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΠΈΠΏ Π·Π°ΠΏΠΈΡΠΈ portfolio ΠΈ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡ portfolio_type:
// Register custom taxonomy (typically in functions.php or a plugin)
register_taxonomy(
'portfolio_type',
'portfolio',
array(
'label' => 'Portfolio Types',
'hierarchical' => true,
)
);
// Query portfolio items of type "branding"
$args = array(
'post_type' => 'portfolio',
'tax_query' => array(
array(
'taxonomy' => 'portfolio_type',
'field' => 'slug',
'terms' => 'branding',
),
),
);
$query = new WP_Query( $args );
ΠΠΎΠ³Π΄Π° hierarchical ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true ΠΈ include_children ΡΠ²Π½ΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² false, Π·Π°ΠΏΡΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ Β«brandingΒ». ΠΡΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΉ Π² ΡΡΠΈΠ»Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ, Π½ΠΎ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°Π²Π°ΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ². Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡΠ΅ 'include_children' => false, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠΎΡΠ½ΡΠΌ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ term_id vs. slug vs. name Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ field
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΠΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅
—
—
—
`slug`
ΠΡΡΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π² ΠΊΠΎΠ΄Π΅ ΡΠ΅ΠΌΡ/ΠΏΠ»Π°Π³ΠΈΠ½Π°
Π‘Π»Π°Π³ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°ΠΌΠΈ Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ
`term_id`
ΠΡΠΈΡΠΈΡΠ½ΡΠ΅ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ
ID ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΠΌΠΈ (ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° vs. ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½)
`name`
Π£Π΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΡΡΠΎΠ²Π½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π§ΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ; Π½Π΅Π½Π°Π΄ΡΠΆΠ½ΠΎ ΠΏΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠΉ
`term_taxonomy_id`
Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡΡ
Π Π΅Π΄ΠΊΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ; ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ID ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡΠΌΠΈ
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° slug Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ΅Π΄ΠΎΠΉ ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ term_id Π±ΡΠ΄ΡΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ. ΠΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ slug Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π‘ΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ
ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠ°ΠΆΠ΄ΡΠΉ tax query Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ JOIN ΠΊ wp_term_relationships. ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΡΡΠΎ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ° ΡΠ°ΠΉΡΠ°Ρ
Ρ Π΄Π΅ΡΡΡΠΊΠ°ΠΌΠΈ ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΠ»ΠΎΡ
ΠΎ ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ tax query ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΏΡΠΈΡΠΈΠ½ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠ² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ fields => 'ids', ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ID Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π° Π½Π΅ ΠΏΠΎΠ»Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
.
ΠΡΡΠΈΡΡΠΉΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Transients API. Tax query Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
Π°ΡΡ
ΠΈΠ²ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π΄ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ set_transient() ΠΈ get_transient().
ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ operator => 'AND' Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½ Π² ΡΡΠ»ΠΎΠ²ΠΈΠΈ AND Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡ. ΠΡΠΏΠΎΠ»Π½ΡΠΉΡΠ΅ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³ Ρ ΠΏΠΎΠΌΠΎΡΡΡ EXPLAIN Π² MySQL ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ.
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡΠ΅ no_found_rows => true, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ
ΠΎΠ΄Ρ SQL_CALC_FOUND_ROWS.
$args = array(
'post_type' => 'post',
'fields' => 'ids',
'no_found_rows' => true,
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'technology',
),
),
);
ΠΠΎΠ²ΡΡΠΊΠ° wp_reset_postdata()
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Π²ΡΠΎΡΠΈΡΠ½ΡΠΉ WP_Query Π²Π½ΡΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Π±Π΅Π· ΡΠ±ΡΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
Π·Π°ΠΏΠΈΡΠΈ, Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ $post Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ: Π½Π΅Π²Π΅ΡΠ½ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Ρ
Π»Π΅Π±Π½ΡΡ
ΠΊΡΠΎΡΠΊΠ°Ρ
, Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ URL ΠΈ ΡΠ»ΠΎΠΌΠ°Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈ Open Graph. ΠΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠΉΡΠ΅ ΡΠ±ΡΠΎΡ.
ΠΠ°ΠΏΡΠΎΡ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ²
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ terms, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅Ρ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
, WP_Query ΠΌΠΎΠ»ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ»Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². ΠΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π½Π΅ Π²ΡΠ΄Π°ΡΡΡΡ. ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ term_exists() ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
tax query Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ
Π΄Π°Π½Π½ΡΡ
.
$term = term_exists( 'technology', 'category' );
if ( $term !== 0 && $term !== null ) {
// Safe to build the tax query
}
Π Π΅Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π°ΡΡ
ΠΈΠ²ΠΎΠ²
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ archive.php ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ pre_get_posts Π΄Π»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ tax query Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ, ΡΠΈΠ»ΡΡΡΡΡ Π°ΡΡ
ΠΈΠ² Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ
ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°ΠΏΡΠΎΡΠ°:
add_action( 'pre_get_posts', function( $query ) {
if ( ! is_admin() && $query->is_main_query() && is_post_type_archive( 'portfolio' ) ) {
$query->set( 'tax_query', array(
array(
'taxonomy' => 'portfolio_type',
'field' => 'slug',
'terms' => array( 'branding', 'web-design' ),
'operator' => 'IN',
),
) );
}
} );
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ pre_get_posts ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅, ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΡΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ WP_Query, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ Π΄ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
.
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΡΠΎΠ²Π°ΡΠΎΠ² Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅
WooCommerce ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ product_cat ΠΈ product_tag ΠΊΠ°ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ WordPress, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ pa_color ΠΈ pa_size. Tax query ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Ρ ΡΠΈΠ»ΡΡΡΠ°ΠΌΠΈ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠΈΠ»ΡΡΡ Π΄Π»Ρ Β«ΠΊΡΠ°ΡΠ½ΡΡ
Π½ΠΎΡΡΠ±ΡΠΊΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π±ΡΠ΅Π½Π΄Π°Β» ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ» Π±Ρ ΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ Ρ relation => 'AND'.
Π Π΅Π΄Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ operator => 'NOT IN' Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΎΠ½ΡΠΎΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈΠ· ΡΠ΅Π΄Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ
Π»Π΅Π½Ρ:
$args = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => array( 'sponsored', 'promoted' ),
'operator' => 'NOT IN',
),
),
);
ΠΠΎΠΈΡΠΊ Π½Π΅ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ operator => 'NOT EXISTS' Π΄Π»Ρ Π°ΡΠ΄ΠΈΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π±Π΅Π· ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ
Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ:
$args = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'category',
'operator' => 'NOT EXISTS',
),
),
);
ΠΡΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠΎ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅Π½Ρ-Π°ΡΠ΄ΠΈΡΠΎΠ² Π½Π° ΠΊΡΡΠΏΠ½ΡΡ
ΡΠ΅Π΄Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ
ΡΠ°ΠΉΡΠ°Ρ
, Π³Π΄Π΅ Π·Π°ΠΏΠΈΡΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π±Π΅Π· Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ.
Tax query vs. Meta query: Π²ΡΠ±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΠΎΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π° WordPress β Ρ
ΡΠ°Π½ΠΈΡΡ Π»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊ ΡΠ΅ΡΠΌΠΈΠ½ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ. ΠΡΠΎΡ Π²ΡΠ±ΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΈΡΠ΅ΡΠΈΠΉ
Tax query (`tax_query`)
Meta query (`meta_query`)
—
—
—
Π’Π°Π±Π»ΠΈΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
`wp_term_relationships` (ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ)
`wp_postmeta` (ΠΌΠ΅Π½Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ)
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΡΡΠΎΠΊΠ°Ρ β ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ Π½Π°Π±ΠΎΡΠ°ΠΌ
ΠΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΡΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ β ΡΡΡΡΠΊΡΡΡΠ° EAV
Π€Π°ΡΠ΅ΡΠ½Π°Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ
ΠΠ°ΡΠΈΠ²Π½Π°Ρ, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ
Π’ΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ
Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ (ΡΠ΅ΡΠΌΠΈΠ½Ρ)
ΠΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠ·Π°ΡΠΈΡ, ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
ΠΡΡΠΈΠ±ΡΡΡ, ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ»Π°Π³ΠΈ
ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π· ID ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ²
Π’ΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ²
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ (ΡΠ²Π΅Ρ, ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ, ΡΠΈΠΏ, ΡΡΠ°ΡΡΡ), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ (ΡΠ΅Π½Π°, Π²Π΅Ρ, Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠ΅ΡΠΊΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ. ΠΡΡΠ°Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°ΠΌΠΈ β ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ
ΠΏΡΠΈΡΠΈΠ½ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ WordPress-ΡΠ°ΠΉΡΠΎΠ² ΠΏΡΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
Π‘ΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎ Ρ
ΠΎΡΡΠΈΠ½Π³Π΅ Π΄Π»Ρ WordPress-ΡΠ°ΠΉΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ
Tax query Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΉ SQL. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠΈΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
ΠΠ° ΠΏΠ»Π°Π½Π΅ VPS Π₯ΠΎΡΡΠΈΠ½Π³Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΡΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ MySQL β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ innodb_buffer_pool_size, Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² (MySQL 5.7 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ) ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΊ wp_term_relationships ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ±ΡΠΈΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠΌ WooCommerce Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠ΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ tax query, ΠΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΡΡΠΎ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Β«ΡΡΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠ΅Π΄Π°Β», ΡΠ½ΠΈΠΆΠ°ΡΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΠΎΠ±ΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅.
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, VPS Ρ cPanel ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ β ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ MySQL ΡΠ΅ΡΠ΅Π· phpMyAdmin Π½Π°ΡΡΠ΄Ρ Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
Π‘Π°ΠΉΡΠ°ΠΌ, Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ WordPress REST API Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ tax query, ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Redis ΠΈΠ»ΠΈ Memcached) Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΠ°Π½Π΅Π»ΡΡ
ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ VPS, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ»ΠΎΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ PHP ΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ°ΡΡΠΈΡΠ° ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΊΠ»ΠΈΡΡ
ΠΠ΅ΡΠ΅Π΄ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ tax query Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π‘ΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ term_exists() Π΄Π»Ρ Π»ΡΠ±ΡΡ
Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ²
wp_reset_postdata() Π²ΡΠ·Π²Π°Π½ β ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° WP_Query, Π±Π΅Π· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
include_children ΡΠ²Π½ΠΎ Π·Π°Π΄Π°Π½ β Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡΠ΅ΡΡ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΉ, Π΅ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ
fields => 'ids' ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ β Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΠΏΠΎΠ»Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ
no_found_rows => true Π·Π°Π΄Π°Π½ β Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠ΅Π³ΠΎ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠΈ
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Ρ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Transients API Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ
ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
Π°ΡΡ
ΠΈΠ²ΠΎΠ² ΠΈΠ»ΠΈ Π»Π΅Π½Π΄ΠΈΠ½Π³Π°Ρ
pre_get_posts ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»Π΅Π½ β ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π²ΡΠΎΡΠΈΡΠ½ΡΠΌΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ WP_Query Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°
ΠΡΠ±ΠΎΡ operator ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄ΡΠ½ β ΡΠ°Π·Π»ΠΈΡΠ°ΠΉΡΠ΅ IN (Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΡΠΌΠΈΠ½), AND (Π²ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ) ΠΈ NOT IN (ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅) ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡ
Π Π°Π·Π»ΠΈΡΠΈΠ΅ relation ΠΈ operator ΠΏΠΎΠ½ΡΡΠΎ β relation ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΡΠ»ΠΎΠ²ΠΈΡ; operator ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡΡΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ β Π½Π΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ Π²ΡΡΠ°Π·ΠΈΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ AND/OR ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° relationSAVEQUERIES Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ SQL ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌΠ§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
Π ΡΡΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ relation => 'AND' ΠΈ operator => 'AND' Π² tax query?
relation β ΡΡΠΎ ΠΊΠ»ΡΡ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ tax query ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ β ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π΄ΠΎΠ»ΠΆΠ½Π° Π»ΠΈ Π·Π°ΠΏΠΈΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ Π²ΡΠ΅ΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ (AND) ΠΈΠ»ΠΈ Ρ
ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎΠΌΡ (OR). operator β ΡΡΠΎ ΠΊΠ»ΡΡ ΡΡΠΎΠ²Π½Ρ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ² terms ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ β AND ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΠΈΡΠΈ Π±ΡΠ»ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠΎΡΠ΅ΠΌΡ ΠΌΠΎΠΉ tax query Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², Ρ ΠΎΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ?
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ: ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ terms, Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΡΠΈΠΏΡ field (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΈΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° field ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² slug), Π·Π°ΠΏΡΠΎΡ ΠΊ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ, Π½Π΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ operator => 'AND' Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° Π·Π°ΠΏΠΈΡΡ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΊΠ»ΡΡΠΈΡΠ΅ SAVEQUERIES ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΡΠΎΠΉ SQL Π΄Π»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ tax query Π²Π½ΡΡΡΠΈ WordPress REST API?
ΠΠ°. WP_REST_Posts_Controller REST API ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ tax_query ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎ ΡΠ΅ΡΠ΅Π· Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΉ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ 'show_in_rest' => true ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ. ΠΠ»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ»ΠΎΠ²Π½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ REST, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ WP_Query Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ»ΠΈΡΠ΅Ρ Π»ΠΈ include_children => true Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ?
ΠΠ°. ΠΠΎΠ³Π΄Π° include_children Π²ΠΊΠ»ΡΡΡΠ½ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΉ), WordPress Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ
ID Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ
ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ° ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΡΡ
Ρ Π³Π»ΡΠ±ΠΎΠΊΠΈΠΌΠΈ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΠΌΠΈ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΡΡΠΎΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΎΡΡΡΠΈΠΌΡΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ
ΠΎΠ΄Ρ. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡΠ΅ 'include_children' => false, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² Π±Π΅Π· Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ
ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ².
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π² tax query?
Π ΡΠ΄ΡΠ΅ WordPress Π½Π΅Ρ ΠΆΡΡΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ MySQL ΠΈ ΠΏΠΎΡΠΎΠ³Π°ΠΌΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΡΡΡ -ΠΏΡΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ tax query β ΡΡΠΎ ΡΠΈΠ³Π½Π°Π» ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅: ΡΠ΅ΡΠ΅Π· Π΄Π΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ (Elasticsearch, Typesense) ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΡΠ°ΠΊΡΠΎΠ½ΠΎΠΌΠΈΠΈ Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΠ»ΠΎΠ²ΠΈΠΉ.
Π½Π° Π²ΡΠ΅Ρ
Ρ
ΠΎΡΡΠΈΠ½Π³ΠΎΠ²ΡΡ
ΡΡΠ»ΡΠ³Π°Ρ