{"id":12380145,"date":"2026-03-20T23:07:17","date_gmt":"2026-03-20T15:07:17","guid":{"rendered":"https:\/\/www.likacloud.com\/knowledge\/wp_query-%e5%85%a8%e9%9d%a2%e8%a7%a3%e6%9e%90%ef%bc%9a%e7%b2%be%e5%87%86%e6%8e%a7%e5%88%b6-wordpress-%e4%b8%bb%e9%a2%98%e5%86%85%e5%ae%b9%e5%be%aa%e7%8e%af\/"},"modified":"2026-06-05T01:16:24","modified_gmt":"2026-06-04T17:16:24","slug":"wp-query-complete-guide-wordpress-theme-content-loop","status":"publish","type":"knowledge_post","link":"https:\/\/www.likacloud.com\/vi\/knowledge\/wordpress\/wp-query-complete-guide-wordpress-theme-content-loop\/","title":{"rendered":"WP_Query ph\u00e2n t\u00edch to\u00e0n di\u1ec7n: Ki\u1ec3m so\u00e1t ch\u00ednh x\u00e1c v\u00f2ng l\u1eb7p n\u1ed9i dung ch\u1ee7 \u0111\u1ec1 WordPress"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n c\u00e1c giao di\u1ec7n (theme) cho WordPress, v\u00f2ng l\u1eb7p x\u1eed l\u00fd n\u1ed9i dung (content loop) l\u00e0 c\u00f4ng c\u1ee5 then ch\u1ed1t \u0111\u1ec3 t\u1ea1o ra hi\u1ec7u \u1ee9ng hi\u1ec3n th\u1ecb n\u1ed9i dung m\u1ed9t c\u00e1ch dinamisch tr\u00ean trang web. M\u1eb7c d\u00f9 v\u00f2ng l\u1eb7p m\u1eb7c \u0111\u1ecbnh kh\u00e1 \u0111\u01a1n gi\u1ea3n v\u00e0 d\u1ec5 s\u1eed d\u1ee5ng, nh\u01b0ng n\u00f3 kh\u00f4ng th\u1ec3 \u0111\u00e1p \u1ee9ng \u0111\u01b0\u1ee3c nh\u1eefng y\u00eau c\u1ea7u ph\u1ee9c t\u1ea1p nh\u01b0 thi\u1ebft k\u1ebf trang ch\u1ee7 v\u1edbi nhi\u1ec1u kh\u1ed1i n\u1ed9i dung, hi\u1ec3n th\u1ecb c\u00e1c lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh, ho\u1eb7c th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c l\u1ecdc n\u1ed9i dung ph\u1ee9c t\u1ea1p. \u0110i\u1ec1 <code data-no-auto-translation=\"\">WP_Query<\/code> C\u00e1c l\u1edbp (classes) tr\u1edf th\u00e0nh ch\u00eca kh\u00f3a gi\u00fap c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n th\u1ef1c hi\u1ec7n vi\u1ec7c ki\u1ec3m so\u00e1t n\u1ed9i dung m\u1ed9t c\u00e1ch ch\u00ednh x\u00e1c. Ch\u00fang cho ph\u00e9p b\u1ea1n truy xu\u1ea5t b\u1ea5t k\u1ef3 b\u00e0i vi\u1ebft, trang web n\u00e0o ho\u1eb7c lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh n\u00e0o t\u1eeb c\u01a1 s\u1edf d\u1eef li\u1ec7u m\u00e0 \u0111\u00e1p \u1ee9ng c\u00e1c \u0111i\u1ec1u ki\u1ec7n c\u1ee5 th\u1ec3, \u0111\u1ed3ng th\u1eddi ki\u1ec3m so\u00e1t ho\u00e0n to\u00e0n c\u00e1ch th\u1ee9c hi\u1ec3n th\u1ecb c\u1ee7a ch\u00fang. \u0110\u00e2y ch\u00ednh l\u00e0 n\u1ec1n t\u1ea3ng c\u01a1 b\u1ea3n \u0111\u1ec3 x<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hi\u1ec3u r\u00f5 h\u1ec7 th\u1ed1ng c\u00e1c tham s\u1ed1 c\u1ed1t l\u00f5i c\u1ee7a WP_Query<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code data-no-auto-translation=\"\">WP_Query<\/code> \u0110i\u1ec3m m\u1ea1nh c\u1ee7a n\u00f3 n\u1eb1m \u1edf kh\u1ea3 n\u0103ng ch\u1ea5p nh\u1eadn m\u1ed9t m\u1ea3ng l\u1edbn c\u00e1c tham s\u1ed1, nh\u1eefng tham s\u1ed1 n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 l\u1ecdc n\u1ed9i dung trong c\u01a1 s\u1edf d\u1eef li\u1ec7u m\u1ed9t c\u00e1ch ch\u00ednh x\u00e1c. Vi\u1ec7c hi\u1ec3u r\u00f5 c\u00e1c lo\u1ea1i tham s\u1ed1 v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng ch\u00fang l\u00e0 b\u01b0\u1edbc \u0111\u1ea7u ti\u00ean trong vi\u1ec7c x\u00e2y d\u1ef1ng c\u00e1c truy v\u1ea5n hi\u1ec7u qu\u1ea3.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00e1c tham s\u1ed1 truy v\u1ea5n c\u01a1 b\u1ea3n v\u00e0 trang h\u00f3a (Basic Query and Paging Parameters)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00e1c tham s\u1ed1 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn nh\u1ea5t d\u00f9ng \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh ph\u1ea1m vi c\u01a1 b\u1ea3n c\u1ee7a truy v\u1ea5n v\u00e0 c\u00e1ch th\u1ee9c trang h\u00f3a k\u1ebft qu\u1ea3 (ph\u00e2n trang). V\u00ed d\u1ee5,<code data-no-auto-translation=\"\">post_type<\/code> C\u00e1c tham s\u1ed1 quy\u1ebft \u0111\u1ecbnh r\u1eb1ng \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c truy v\u1ea5n l\u00e0 b\u00e0i vi\u1ebft (article).<code data-no-auto-translation=\"\">post<\/code>\uff09\u3001Trang (Page)<code data-no-auto-translation=\"\">page<\/code>) Ho\u1eb7c b\u1ea5t k\u1ef3 lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh n\u00e0o \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u0103ng k\u00fd.<code data-no-auto-translation=\"\">posts_per_page<\/code> \u548c <code data-no-auto-translation=\"\">paged<\/code> V\u00ec v\u1eady, ch\u00fang c\u00f9ng nhau ki\u1ec3m so\u00e1t logic trang h\u00f3a (pageing logic).<\/p>\n<!-- AUTO_INTERNAL_LINKS_START --><p>\u0110\u1ecdc th\u00eam <a href=\"https:\/\/www.likacloud.com\/es\/knowledge\/wordpress\/how-to-develop-a-high-quality-wordpress-theme-from-scratch\/\">H\u01b0\u1edbng d\u1eabn b\u1ea1n t\u1eebng b\u01b0\u1edbc c\u00e1ch ph\u00e1t tri\u1ec3n m\u1ed9t theme WordPress ch\u1ea5t l\u01b0\u1ee3ng cao t\u1eeb con s\u1ed1 kh\u00f4ng<\/a>\u3002<\/p><!-- AUTO_INTERNAL_LINKS_END -->\n\n\n\n\n<pre class=\"wp-block-code\" data-no-auto-translation=\"\"><code class=\"language-php\" data-no-auto-translation=\"\">$args = array(\n    \/\/ \u6307\u5b9a\u67e5\u8be2\u4ea7\u54c1\u7c7b\u578b\n    &#039;post_type&#039;      =&gt; &#039;product&#039;,\n    \/\/ \u6bcf\u9875\u663e\u793a8\u4e2a\u9879\u76ee\n    &#039;posts_per_page&#039; =&gt; 8,\n    \/\/ \u83b7\u53d6\u7b2c2\u9875\u7684\u5185\u5bb9\n    &#039;paged&#039;          =&gt; 2,\n    \/\/ \u6309\u7167\u53d1\u5e03\u65e5\u671f\u964d\u5e8f\u6392\u5217\n    &#039;orderby&#039;        =&gt; &#039;date&#039;,\n    &#039;order&#039;          =&gt; &#039;DESC&#039;,\n);\n$product_query = new WP_Query( $args );<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Ph\u01b0\u01a1ng ph\u00e1p ph\u00e2n lo\u1ea1i v\u00e0 tham s\u1ed1 truy v\u1ea5n d\u1eef li\u1ec7u si\u00eau d\u1eef li\u1ec7u (metadata)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u1ed1i v\u1edbi c\u00e1c \u0111i\u1ec1u ki\u1ec7n l\u1ecdc ph\u1ee9c t\u1ea1p h\u01a1n,<code data-no-auto-translation=\"\">tax_query<\/code> \u548c <code data-no-auto-translation=\"\">meta_query<\/code> C\u00e1c tham s\u1ed1 l\u00e0 \u0111i\u1ec1u kh\u00f4ng th\u1ec3 thi\u1ebfu.<code data-no-auto-translation=\"\">tax_query<\/code> D\u00f9ng \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c truy v\u1ea5n li\u00ean quan \u0111\u1ebfn danh m\u1ee5c (Category), th\u1ebb (Tag), v\u00e0 b\u1ea5t k\u1ef3 h\u1ec7 th\u1ed1ng ph\u00e2n lo\u1ea1i t\u00f9y ch\u1ec9nh (Taxonomy) n\u00e0o. <code data-no-auto-translation=\"\">meta_query<\/code> N\u00f3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 truy v\u1ea5n c\u00e1c b\u00e0i vi\u1ebft c\u00f3 ch\u1ee9a c\u00e1c tr\u01b0\u1eddng t\u00f9y ch\u1ec9nh c\u1ee5 th\u1ec3 (Post Meta) c\u00f9ng v\u1edbi gi\u00e1 tr\u1ecb c\u1ee7a ch\u00fang, v\u00ed d\u1ee5 nh\u01b0 truy v\u1ea5n t\u1ea5t c\u1ea3 c\u00e1c s\u1ea3n ph\u1ea9m c\u00f3 tr\u1ea1ng th\u00e1i \u201cc\u00f2n h\u00e0ng\u201d ho\u1eb7c \u201cgi\u1ea3m gi\u00e1\u201d.<\/p>\n<!-- AUTO_SYNCED_PATTERN_INSERT_START -->\n\r\n<div class=\"flex justify-between items-center flex-col lg:flex-row xl:flex-col 2xl:flex-row gap-6 sm:gap-8 rounded-lg border border-gray-200 dark:border-gray-700 p-4 mb-8 lg:mb-10 sm:p-6 bg-white dark:bg-gray-750 shadow-md transition-colors duration-300\"\r\n     data-link=\"https:\/\/www.likacloud.com\/vi\/tolink\/ultahost-wordpress-hosting\/\">\r\n     \r\n  <div class=\"flex flex-col gap-3 gap-4 sm:gap-6 w-full\">\r\n    <strong class=\"text-2xl font-semibold text-gray-900 dark:text-gray-200\">\r\n      UltaHost \u2013 Nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 m\u00e1y ch\u1ee7 WordPress chuy\u00ean nghi\u1ec7p    <\/strong>\r\n    <div class=\"text-gray-600 dark:text-gray-300 word-word\">B\u1ea3o \u0111\u1ea3m ho\u00e0n ti\u1ec1n trong 30 ng\u00e0y, b\u0103ng th\u00f4ng v\u00e0 c\u01a1 s\u1edf d\u1eef li\u1ec7u kh\u00f4ng gi\u1edbi h\u1ea1n, b\u1ea3o v\u1ec7 DDoS mi\u1ec5n ph\u00ed, mua 3 n\u0103m \u01b0u \u0111\u00e3i 50%<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"flex items-center flex-col md:flex-row lg:flex-col xl:flex-row 2xl:flex-col gap-6 shrink-0\">\r\n          <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/ultahost-wordpress-hosting\/\">\r\n                  <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/12\/20251227020448.webp\" alt=\"Logo UltaHost\" class=\"content-promotion-card-icon h-9 min-h-9 dark:hidden\" title=\"\">\r\n          <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/12\/20251229052118.webp\" alt=\"Logo UltaHost\" class=\"content-promotion-card-icon h-9 min-h-9 hidden dark:block\" title=\"\">\r\n              <\/a>\r\n    \r\n    <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/ultahost-wordpress-hosting\/\"\r\n       class=\"bg-blue-500 w-full md:w-auto lg:w-full xl:w-auto 2xl:w-full text-center !text-white dark:!text-gray-200 !px-5 !py-1.5 rounded-full hover:bg-blue-600 transition-colors\">\r\n       Truy c\u1eadp trang    <\/a>\r\n  <\/div>\r\n<\/div>\n<!-- AUTO_SYNCED_PATTERN_INSERT_END -->\n\n\n\n\n\n<pre class=\"wp-block-code\" data-no-auto-translation=\"\"><code class=\"language-php\" data-no-auto-translation=\"\">$args = array(\n    &#039;post_type&#039; =&gt; &#039;book&#039;,\n    &#039;tax_query&#039; =&gt; array(\n        array(\n            &#039;taxonomy&#039; =&gt; &#039;genre&#039;, \/\/ \u81ea\u5b9a\u4e49\u5206\u7c7b\u6cd5\uff1a\u4e66\u7c4d\u7c7b\u578b\n            &#039;field&#039;    =&gt; &#039;slug&#039;,\n            &#039;terms&#039;    =&gt; array( &#039;science-fiction&#039;, &#039;fantasy&#039; ),\n            &#039;operator&#039; =&gt; &#039;IN&#039;, \/\/ \u67e5\u8be2\u7c7b\u578b\u4e3a\u201c\u79d1\u5e7b\u201d\u6216\u201c\u5947\u5e7b\u201d\u7684\u4e66\u7c4d\n        ),\n    ),\n    &#039;meta_query&#039; =&gt; array(\n        array(\n            &#039;key&#039;     =&gt; &#039;_price&#039;,\n            &#039;value&#039;   =&gt; 50,\n            &#039;compare&#039; =&gt; &#039;&lt;&#039;,\n            &#039;type&#039;    =&gt; &#039;NUMERIC&#039;, \/\/ \u67e5\u8be2\u4ef7\u683c\u4f4e\u4e8e50\u7684\u4e66\u7c4d\n        ),\n    ),\n);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">X\u00e2y d\u1ef1ng v\u00e0 th\u1ef1c thi v\u00f2ng l\u1eb7p truy v\u1ea5n t\u00f9y ch\u1ec9nh<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sau khi \u0111\u00e3 \u0111\u1ecbnh ngh\u0129a c\u00e1c tham s\u1ed1 truy v\u1ea5n, b\u01b0\u1edbc ti\u1ebfp theo l\u00e0 kh\u1edfi t\u1ea1o (instantiate) \u0111\u1ed1i t\u01b0\u1ee3ng li\u00ean quan \u0111\u1ebfn truy v\u1ea5n \u0111\u00f3. <code data-no-auto-translation=\"\">WP_Query<\/code> V\u00e0 \u0111\u01b0a ra k\u1ebft qu\u1ea3 m\u1ed9t c\u00e1ch tu\u1ea7n ho\u00e0n, an to\u00e0n. Qu\u00e1 tr\u00ecnh n\u00e0y c\u00f3 m\u1ed9t m\u00f4 h\u00ecnh ti\u00eau chu\u1ea9n; vi\u1ec7c tu\u00e2n theo m\u00f4 h\u00ecnh \u0111\u00f3 r\u1ea5t quan tr\u1ecdng \u0111\u1ec3 duy tr\u00ec s\u1ef1 \u1ed5n \u0111\u1ecbnh c\u1ee7a m\u00f4i tr\u01b0\u1eddng c\u00e1c bi\u1ebfn to\u00e0n c\u1ee5c.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u1ea5u tr\u00fac v\u00f2ng l\u1eb7p truy v\u1ea5n ti\u00eau chu\u1ea9n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1ed9t v\u00f2ng l\u1eb7p truy v\u1ea5n t\u00f9y ch\u1ec9nh m\u1ea1nh m\u1ebd n\u00ean bao g\u1ed3m b\u1ed1n b\u01b0\u1edbc: kh\u1edfi t\u1ea1o \u0111\u1ed1i t\u01b0\u1ee3ng truy v\u1ea5n, ki\u1ec3m tra xem c\u00f3 k\u1ebft qu\u1ea3 kh\u00f4ng, l\u1eb7p l\u1ea1i \u0111\u1ec3 hi\u1ec3n th\u1ecb n\u1ed9i dung, v\u00e0 thi\u1ebft l\u1eadp l\u1ea1i d\u1eef li\u1ec7u to\u00e0n c\u1ee5c. B\u00ean trong v\u00f2ng l\u1eb7p, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c thao t\u00e1c c\u1ea7n thi\u1ebft \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c b\u01b0\u1edbc tr\u00ean. <code data-no-auto-translation=\"\">the_post()<\/code> C\u00e1c ph\u01b0\u01a1ng ph\u00e1p v\u00e0 m\u1ed9t lo\u1ea1t th\u1ebb m\u1eabu (nh\u01b0\u2026) <code data-no-auto-translation=\"\">the_title()<\/code>, <code data-no-auto-translation=\"\">the_content()<\/code>\uff09\u0111\u1ec3 xu\u1ea5t th\u00f4ng tin c\u1ee7a m\u1ed7i b\u00e0i vi\u1ebft.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-auto-translation=\"\"><code class=\"language-php\" data-no-auto-translation=\"\">\/\/ 1. \u521d\u59cb\u5316\n$featured_args = array( &#039;category_name&#039; =&amp;gt; &#039;featured&#039;, &#039;posts_per_page&#039; =&amp;gt; 3 );\n$featured_query = new WP_Query( $featured_args );\n\n\/\/ 2. \u68c0\u67e5\nif ( $featured_query-&amp;gt;have_posts() ) {\n    echo &#039;&lt;section class=&quot;featured-posts&quot;&gt;&#039;;\n    \/\/ 3. \u5faa\u73af\n    while ( $featured_query-&amp;gt;have_posts() ) {\n        $featured_query-&amp;gt;the_post();\n        \/\/ \u73b0\u5728\u53ef\u4ee5\u4f7f\u7528\u6a21\u677f\u6807\u7b7e\n        echo &#039;&lt;article&gt;&#039;;\n        echo &#039;&lt;h2&gt;&lt;a href=&quot;\/vi\/&#039; . esc_url( get_permalink() ) . &#039;\/&quot;&gt;&#039;. get_the_title() . &#039;&lt;\/a&gt;&lt;\/h2&gt;&#039;;\n        the_excerpt();\n        echo &#039;&lt;\/article&gt;&#039;;\n    }\n    echo &#039;&lt;\/section&gt;&#039;;\n} else {\n    \/\/ \u5982\u679c\u6ca1\u6709\u627e\u5230\u6587\u7ae0\n    echo &#039;&lt;p&gt;Kh&ocirc;ng c&oacute; n\u1ed9i dung \u0111\u01b0\u1ee3c ch\u1ecdn l\u1ecdc n&agrave;o.&lt;\/p&gt;&#039;\/\/ 4. \u0110\u1eb7t l\u1ea1i d\u1eef li\u1ec7u b&agrave;i \u0111\u0103ng (b\u01b0\u1edbc quan tr\u1ecdng!)  \nwp_reset_postdata();<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">X\u1eed l\u00fd th\u00f4ng tin ph\u1ee5 (metadata) trong k\u1ebft qu\u1ea3 truy v\u1ea5n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code data-no-auto-translation=\"\">WP_Query<\/code> C\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng kh\u00f4ng ch\u1ec9 cung c\u1ea5p d\u1eef li\u1ec7u c\u1ee7a b\u00e0i vi\u1ebft m\u00e0 c\u00f2n ch\u1ee9a c\u1ea3 th\u00f4ng tin metad\u1eef li\u1ec7u li\u00ean quan \u0111\u1ebfn ch\u00ednh cu\u1ed9c truy v\u1ea5n (query), v\u00e0 nh\u1eefng th\u00f4ng tin n\u00e0y r\u1ea5t h\u1eefu \u00edch trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m. V\u00ed d\u1ee5,<code data-no-auto-translation=\"\">$query-&gt;max_num_pages<\/code> C\u00e1c thu\u1ed9c t\u00ednh cho ph\u00e9p truy c\u1eadp t\u1ed5ng s\u1ed1 trang k\u1ebft qu\u1ea3 c\u1ee7a truy v\u1ea5n, t\u1eeb \u0111\u00f3 c\u00f3 th\u1ec3 x\u00e2y d\u1ef1ng h\u1ec7 th\u1ed1ng \u0111i\u1ec1u h\u01b0\u1edbng trang t\u1ef1 \u0111\u1ecbnh.<code data-no-auto-translation=\"\">$query-&gt;found_posts<\/code> Thu\u1ed9c t\u00ednh n\u00e0y s\u1ebd tr\u1ea3 v\u1ec1 t\u1ed5ng s\u1ed1 b\u00e0i vi\u1ebft \u0111\u00e1p \u1ee9ng c\u00e1c \u0111i\u1ec1u ki\u1ec7n \u0111\u01b0\u1ee3c y\u00eau c\u1ea7u, ch\u1ee9 kh\u00f4ng ch\u1ec9 s\u1ed1 l\u01b0\u1ee3ng b\u00e0i vi\u1ebft tr\u00ean trang hi\u1ec7n t\u1ea1i.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-auto-translation=\"\"><code class=\"language-php\" data-no-auto-translation=\"\">\/\/ \u5728\u5faa\u73af\u4e4b\u540e\uff0c\u53ef\u4ee5\u83b7\u53d6\u8fd9\u4e9b\u4fe1\u606f\n$total_posts = $featured_query-&amp;gt;found_posts;\n$total_pages = $featured_query-&amp;gt;max_num_pages;\n\necho &quot;&lt;p&gt;T\u1ed5ng c\u1ed9ng \u0111&atilde; t&igrave;m th\u1ea5y {$total_posts} b&agrave;i vi\u1ebft \u0111\u01b0\u1ee3c ch\u1ecdn l\u1ecdc, \u0111\u01b0\u1ee3c chia th&agrave;nh {$total_pages} trang.&lt;\/p&gt;&quot;D\u1ef1a tr&ecirc;n nh\u1eefng th&ocirc;ng tin n&agrave;y, b\u1ea1n c&oacute; th\u1ec3 t\u1ea1o ra c&aacute;c li&ecirc;n k\u1ebft trang (pagination links) t&ugrave;y ch\u1ec9nh.<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">T\u1ed1i \u01b0u h\u00f3a hi\u1ec7u n\u0103ng truy v\u1ea5n v\u00e0 chi\u1ebfn l\u01b0\u1ee3c l\u01b0u tr\u1eef \u0111\u1ec7m (caching)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Khi n\u1ed9i dung trang web ng\u00e0y c\u00e0ng t\u0103ng l\u00ean v\u00e0 \u0111\u1ed9 ph\u1ee9c t\u1ea1p c\u1ee7a c\u00e1c truy v\u1ea5n c\u0169ng t\u0103ng theo, hi\u1ec7u n\u0103ng tr\u1edf th\u00e0nh m\u1ed9t v\u1ea5n \u0111\u1ec1 kh\u00f4ng th\u1ec3 b\u1ecf qua. Nh\u1eefng gi\u1ea3i ph\u00e1p kh\u00f4ng h\u1ee3p l\u00fd c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn s\u1ef1 gi\u1ea3m s\u00fat hi\u1ec7u su\u1ea5t ho\u1ea1t \u0111\u1ed9ng c\u1ee7a trang web, \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng. <code data-no-auto-translation=\"\">WP_Query<\/code> \u0110i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn t\u00ecnh tr\u1ea1ng \u00e1p l\u1ef1c l\u1edbn l\u00ean c\u01a1 s\u1edf d\u1eef li\u1ec7u, l\u00e0m ch\u1eadm t\u1ed1c \u0111\u1ed9 truy c\u1eadp trang web.<\/p>\n<!-- AUTO_INTERNAL_LINKS_START --><p>\u0110\u1ecdc th\u00eam <a href=\"https:\/\/www.likacloud.com\/es\/knowledge\/wordpress\/professional-wordpress-theme-development-responsive-website\/\">Ph\u00e2n t\u00edch s\u00e2u v\u1ec1 vi\u1ec7c ph\u00e1t tri\u1ec3n c\u00e1c ch\u1ee7 \u0111\u1ec1 WordPress chuy\u00ean nghi\u1ec7p: X\u00e2y d\u1ef1ng trang web th\u00edch \u1ee9ng t\u1eeb \u0111\u1ea7u<\/a>\u3002<\/p><!-- AUTO_INTERNAL_LINKS_END -->\n\n\n\n\n<h3 class=\"wp-block-heading\">S\u1eed d\u1ee5ng API Transients \u0111\u1ec3 l\u01b0u tr\u1eef k\u1ebft qu\u1ea3 truy v\u1ea5n trong b\u1ed9 nh\u1edb \u0111\u1ec7m<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u1ed1i v\u1edbi c\u00e1c truy v\u1ea5n m\u00e0 n\u1ed9i dung \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt kh\u00f4ng th\u01b0\u1eddng xuy\u00ean (ch\u1eb3ng h\u1ea1n nh\u01b0 \u201cB\u00e0i vi\u1ebft \u0111\u01b0\u1ee3c \u0111\u1ecdc nhi\u1ec1u nh\u1ea5t trong th\u00e1ng\u201d, danh s\u00e1ch \u201c\u0110\u01b0\u1ee3c bi\u00ean t\u1eadp gi\u1edbi thi\u1ec7u\u201d), vi\u1ec7c s\u1eed d\u1ee5ng API Transients c\u1ee7a WordPress \u0111\u1ec3 t\u1ea1o b\u1ed9 nh\u1edb \u0111\u1ec7m l\u00e0 m\u1ed9t l\u1ef1a ch\u1ecdn tuy\u1ec7t v\u1eddi. N\u00f3 cho ph\u00e9p l\u01b0u k\u1ebft qu\u1ea3 truy v\u1ea5n ho\u1eb7c c\u00e1c \u0111o\u1ea1n HTML \u0111\u01b0\u1ee3c t\u1ea1o ra tr\u1ef1c ti\u1ebfp v\u00e0o c\u01a1 s\u1edf d\u1eef li\u1ec7u ho\u1eb7c b\u1ed9 nh\u1edb \u0111\u1ec7m trong m\u00e1y, v\u00e0 truy c\u1eadp ch\u00fang tr\u1ef1c ti\u1ebfp trong th\u1eddi gian h\u1eefu hi\u1ec7u, gi\u00fap tr\u00e1nh vi\u1ec7c th\u1ef1c hi\u1ec7n c\u00e1c truy v\u1ea5n ph\u1ee9c t\u1ea1p v\u00e0o c\u01a1 s\u1edf d\u1eef li\u1ec7u nhi\u1ec1u l\u1ea7n.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-auto-translation=\"\"><code class=\"language-php\" data-no-auto-translation=\"\">\/\/ \u5b9a\u4e49\u4e00\u4e2a\u552f\u4e00\u7684\u77ac\u6001\u952e\u540d\n$transient_key = &#039;mytheme_hot_products_week_42&#039;;\n\n\/\/ \u5c1d\u8bd5\u4ece\u7f13\u5b58\u4e2d\u83b7\u53d6\n$cached_html = get_transient( $transient_key );\n\nif ( false === $cached_html ) {\n    \/\/ \u7f13\u5b58\u4e0d\u5b58\u5728\u6216\u5df2\u8fc7\u671f\uff0c\u6267\u884c\u67e5\u8be2\n    $args = array(\n        &#039;post_type&#039;      =&gt; &#039;product&#039;,\n        &#039;meta_key&#039;       =&gt; &#039;sales_count&#039;,\n        &#039;orderby&#039;        =&gt; &#039;meta_value_num&#039;,\n        &#039;order&#039;          =&gt; &#039;DESC&#039;,\n        &#039;posts_per_page&#039; =&gt; 5,\n    );\n    $hot_query = new WP_Query( $args );\n\nob_start(); \/\/ \u5f00\u542f\u8f93\u51fa\u7f13\u51b2\n    \/\/ ... \u5faa\u73af\u8f93\u51fa\u6587\u7ae0HTML\u5230\u7f13\u51b2\u533a\n    if ( $hot_query-&gt;have_posts() ) {\n        while ( $hot_query-&gt;have_posts() ) { $hot_query-&gt;the_post();\n            \/\/ \u8f93\u51fa\u5217\u8868\u9879\n        }\n    }\n    wp_reset_postdata();\n    $cached_html = ob_get_clean(); \/\/ \u83b7\u53d6\u7f13\u51b2\u5185\u5bb9\u5e76\u6e05\u7a7a\n\n\/\/ \u5c06\u7ed3\u679c\u7f13\u5b5812\u5c0f\u65f6\n    set_transient( $transient_key, $cached_html, 12 * HOUR_IN_SECONDS );\n}\n\n\/\/ \u8f93\u51fa\u7f13\u5b58\u6216\u521a\u751f\u6210\u7684\u5185\u5bb9\necho $cached_html;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">H\u00e3y s\u1eed d\u1ee5ng c\u00e1c thu\u1ed9c t\u00ednh `posts_per_page` v\u00e0 `offset` m\u1ed9t c\u00e1ch th\u1eadn tr\u1ecdng.\u2018<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u00f4i khi c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n mu\u1ed1n b\u1ecf qua N b\u00e0i vi\u1ebft \u0111\u1ea7u ti\u00ean (v\u00ed d\u1ee5: khi hi\u1ec3n th\u1ecb \u201cTh\u00eam tin t\u1ee9c\u201d \u1edf thanh b\u00ean c\u1ea1nh, h\u1ecd mu\u1ed1n b\u1ecf qua c\u00e1c b\u00e0i tin ch\u00ednh). H\u1ecd c\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n \u0111i\u1ec1u n\u00e0y m\u1ed9t c\u00e1ch tr\u1ef1c ti\u1ebfp. <code data-no-auto-translation=\"\">offset<\/code> C\u00e1c tham s\u1ed1 s\u1ebd \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng c\u00f9ng v\u1edbi ch\u1ee9c n\u0103ng ph\u00e2n trang (pagination).<code data-no-auto-translation=\"\">paged<\/code>\u0110i\u1ec1u n\u00e0y g\u00e2y ra xung \u0111\u1ed9t, d\u1eabn \u0111\u1ebfn l\u1ed7i trong vi\u1ec7c t\u00ednh to\u00e1n trang. C\u00e1ch th\u1ef1c hi\u1ec7n \u0111\u01b0\u1ee3c khuy\u1ebfn ngh\u1ecb h\u01a1n l\u00e0 s\u1eed d\u1ee5ng ch\u00fang ngay b\u00ean trong v\u00f2ng l\u1eb7p. <code data-no-auto-translation=\"\">$query-&gt;current_post<\/code> B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c thu\u1ed9c t\u00ednh \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c ph\u00e9p so s\u00e1nh (\u0111i\u1ec1u ki\u1ec7n) ho\u1eb7c \u00e1p d\u1ee5ng ch\u00fang khi ch\u1ec9nh s\u1eeda truy v\u1ea5n ch\u00ednh (main query). <code data-no-auto-translation=\"\">pre_get_posts<\/code> S\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 k\u1ebft n\u1ed1i (hooks) \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c logic ph\u1ee9c t\u1ea1p h\u01a1n, thay v\u00ec ch\u1ec9 \u0111\u01a1n gi\u1ea3n \u00e1p d\u1ee5ng ph\u00e9p d\u1ecbch chuy\u1ec3n (offset).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Thay \u0111\u1ed5i truy v\u1ea5n ch\u00ednh b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 g\u1eafn k\u1ebft (hooks).<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Trong nhi\u1ec1u tr\u01b0\u1eddng h\u1ee3p, b\u1ea1n kh\u00f4ng c\u1ea7n ph\u1ea3i t\u1ea1o ra m\u1ed9t v\u00f2ng l\u1eb7p ho\u00e0n to\u00e0n m\u1edbi m\u00e0 mu\u1ed1n ch\u1ec9nh s\u1eeda truy v\u1ea5n ch\u00ednh m\u00e0 WordPress t\u1ef1 \u0111\u1ed9ng t\u1ea1o ra cho trang hi\u1ec7n t\u1ea1i. V\u00ed d\u1ee5, b\u1ea1n mu\u1ed1n trang l\u01b0u tr\u1eef c\u1ee7a m\u1ed9t th\u1ec3 lo\u1ea1i hi\u1ec3n th\u1ecb c\u1ea3 c\u00e1c b\u00e0i vi\u1ebft th\u00f4ng th\u01b0\u1eddng v\u00e0 m\u1ed9t lo\u1ea1i b\u00e0i vi\u1ebft t\u00f9y ch\u1ec9nh. Vi\u1ec7c t\u1ea1o ra m\u1ed9t v\u00f2ng l\u1eb7p ph\u1ee5 v\u00e0 thay th\u1ebf to\u00e0n b\u1ed9 v\u00f2ng l\u1eb7p ch\u00ednh v\u1eeba kh\u00f4ng hi\u1ec7u qu\u1ea3 v\u1eeba g\u00e2y phi\u1ec1n ph\u1ee9c. L\u00fac n\u00e0y, b\u1ea1n n\u00ean s\u1eed d\u1ee5ng ph\u01b0\u01a1ng ph\u00e1p\u2026 <code data-no-auto-translation=\"\">pre_get_posts<\/code> Action Hook.<\/p>\n<!-- AUTO_SYNCED_PATTERN_INSERT_START -->\n\r\n<div class=\"flex justify-between items-center flex-col lg:flex-row xl:flex-col 2xl:flex-row gap-6 sm:gap-8 rounded-lg border border-gray-200 dark:border-gray-700 p-4 mb-8 lg:mb-10 sm:p-6 bg-white dark:bg-gray-750 shadow-md transition-colors duration-300\"\r\n     data-link=\"https:\/\/www.likacloud.com\/vi\/tolink\/hosting-shared-hosting\/\">\r\n     \r\n  <div class=\"flex flex-col gap-3 gap-4 sm:gap-6 w-full\">\r\n    <strong class=\"text-2xl font-semibold text-gray-900 dark:text-gray-200\">\r\n      Hosting.com - l\u01b0u tr\u1eef chia s\u1ebb    <\/strong>\r\n    <div class=\"text-gray-600 dark:text-gray-300 word-word\">Hi\u1ec7u n\u0103ng cao, \u0111\u01b0\u1ee3c trang b\u1ecb CPU AMD EPYC, l\u01b0u tr\u1eef SSD NVMe v\u00e0 LiteSpeed, h\u1ed7 tr\u1ee3 chuy\u00ean gia n\u1ed9i b\u1ed9 24 gi\u1edd\/ng\u00e0y, c\u00e1c bi\u1ec7n ph\u00e1p b\u1ea3o m\u1eadt ti\u00ean ti\u1ebfn bao g\u1ed3m SSL, ch\u1ed1ng brute force, ph\u1ea7n m\u1ec1m \u0111\u1ed9c h\u1ea1i v\u00e0 b\u1ea3o v\u1ec7 DDoS, ti\u1ebft ki\u1ec7m t\u1edbi 73%.<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"flex items-center flex-col md:flex-row lg:flex-col xl:flex-row 2xl:flex-col gap-6 shrink-0\">\r\n          <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/hosting-shared-hosting\/\">\r\n                  <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/09\/20250901222940.svg\" alt=\"Logo c\u1ee7a Hosting.com\" class=\"content-promotion-card-icon h-9 min-h-9 dark:hidden\" title=\"\">\r\n          <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/12\/20251228220957.webp\" alt=\"Logo c\u1ee7a Hosting.com\" class=\"content-promotion-card-icon h-9 min-h-9 hidden dark:block\" title=\"\">\r\n              <\/a>\r\n    \r\n    <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/hosting-shared-hosting\/\"\r\n       class=\"bg-blue-500 w-full md:w-auto lg:w-full xl:w-auto 2xl:w-full text-center !text-white dark:!text-gray-200 !px-5 !py-1.5 rounded-full hover:bg-blue-600 transition-colors\">\r\n       Truy c\u1eadp trang    <\/a>\r\n  <\/div>\r\n<\/div>\n<!-- AUTO_SYNCED_PATTERN_INSERT_END -->\n\n\n\n\n\n<h3 class=\"wp-block-heading\">S\u1eed d\u1ee5ng pre_get_posts trong functions.php<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e3y \u0111\u1eb7t logic \u0111i\u1ec1u ch\u1ec9nh v\u00e0o ph\u1ea7n n\u1ed9i dung ch\u00ednh c\u1ee7a ch\u1ee7 \u0111\u1ec1 (theme). <code data-no-auto-translation=\"\">functions.php<\/code> Trong t\u1ec7p tin, b\u1ea1n c\u00f3 th\u1ec3 thay \u0111\u1ed5i h\u00e0nh vi c\u1ee7a truy v\u1ea5n ch\u00ednh m\u1ed9t c\u00e1ch linh ho\u1ea1t v\u00e0 hi\u1ec7u qu\u1ea3. Ch\u00eca kh\u00f3a n\u1eb1m \u1edf vi\u1ec7c s\u1eed d\u1ee5ng c\u00e1c th\u1ebb \u0111i\u1ec1u ki\u1ec7n (nh\u01b0\u2026) <code data-no-auto-translation=\"\">is_category()<\/code>, <code data-no-auto-translation=\"\">is_tag()<\/code>(V\u00e0 ki\u1ec3m tra) <code data-no-auto-translation=\"\">$query-&gt;is_main_query()<\/code> \u0110i\u1ec1u n\u00e0y nh\u1eb1m \u0111\u1ea3m b\u1ea3o r\u1eb1ng c\u00e1c thay \u0111\u1ed5i ch\u1ec9 \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n trong b\u1ed1i c\u1ea3nh ph\u00f9 h\u1ee3p, tr\u00e1nh \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn giao di\u1ec7n qu\u1ea3n tr\u1ecb n\u1ec1n t\u1ea3ng ho\u1eb7c c\u00e1c truy v\u1ea5n kh\u00e1c.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-auto-translation=\"\"><code class=\"language-php\" data-no-auto-translation=\"\">add_action( &#039;pre_get_posts&#039;, &#039;mytheme_adjust_main_query&#039; );\nfunction mytheme_adjust_main_query( $query ) {\n    \/\/ \u4ec5\u5728\u524d\u7aef\u3001\u4e14\u662f\u4e3b\u67e5\u8be2\u3001\u4e14\u662f\u201c\u65b0\u95fb\u201d\u5206\u7c7b\u9875\u65f6\u6267\u884c\n    if ( ! is_admin() &amp;&amp; $query-&gt;is_main_query() &amp;&amp; is_category( &#039;news&#039; ) ) {\n        \/\/ \u8ba9\u4e3b\u67e5\u8be2\u540c\u65f6\u83b7\u53d6\u201cpost\u201d\u548c\u201cpress-release\u201d\u4e24\u79cd\u6587\u7ae0\u7c7b\u578b\n        $query-&gt;set( &#039;post_type&#039;, array( &#039;post&#039;, &#039;press-release&#039; ) );\n        \/\/ \u6309\u81ea\u5b9a\u4e49\u7684\u201c\u91cd\u8981\u6027\u201d\u5143\u5b57\u6bb5\u6392\u5e8f\n        $query-&gt;set( &#039;meta_key&#039;, &#039;importance_rating&#039; );\n        $query-&gt;set( &#039;orderby&#039;, &#039;meta_value_num&#039; );\n        $query-&gt;set( &#039;order&#039;, &#039;DESC&#039; );\n    }\n\n\/\/ \u5728\u641c\u7d22\u9875\uff0c\u5c06\u641c\u7d22\u8303\u56f4\u6269\u5c55\u5230\u201c\u4ea7\u54c1\u201d\u81ea\u5b9a\u4e49\u6587\u7ae0\u7c7b\u578b\n    if ( ! is_admin() &amp;&amp; $query-&gt;is_main_query() &amp;&amp; $query-&gt;is_search() ) {\n        $current_types = $query-&gt;get( &#039;post_type&#039; );\n        if ( empty( $current_types ) ) {\n            \/\/ \u9ed8\u8ba4\u641c\u7d22\u53ea\u5305\u542b\u2018post\u2019\uff0c\u6211\u4eec\u52a0\u5165\u2018product\u2019\n            $query-&gt;set( &#039;post_type&#039;, array( &#039;post&#039;, &#039;page&#039;, &#039;product&#039; ) );\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">T\u00f3m l\u1ea1i<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code data-no-auto-translation=\"\">WP_Query<\/code> \u0110\u00e2y ch\u00ednh l\u00e0 \u201cch\u00eca kh\u00f3a\u201d \u0111\u1ec3 gi\u1ea3i ph\u00f3ng ti\u1ec1m n\u0103ng hi\u1ec3n th\u1ecb n\u1ed9i dung c\u1ee7a c\u00e1c ch\u1ee7 \u0111\u1ec1 WordPress. T\u1eeb nh\u1eefng danh s\u00e1ch b\u00e0i vi\u1ebft \u0111\u01a1n gi\u1ea3n cho \u0111\u1ebfn c\u00e1c trang t\u1ed5ng h\u1ee3p ph\u1ee9c t\u1ea1p d\u1ef1a tr\u00ean nhi\u1ec1u ti\u00eau ch\u00ed nh\u01b0 th\u1ec3 lo\u1ea1i, meta-d\u1eef li\u1ec7u, ng\u00e0y th\u00e1ng, c\u00f4ng c\u1ee5 n\u00e0y mang l\u1ea1i s\u1ef1 linh ho\u1ea1t v\u00e0 kh\u1ea3 n\u0103ng ki\u1ec3m so\u00e1t v\u00f4 song. H\u00e3y n\u1eafm v\u1eefng h\u1ec7 th\u1ed1ng c\u00e1c tham s\u1ed1 c\u1ee7a n\u00f3, tu\u00e2n theo m\u00f4 h\u00ecnh ti\u00eau chu\u1ea9n \u201ckh\u1edfi t\u1ea1o \u2013 ki\u1ec3m tra \u2013 l\u1eb7p l\u1ea1i \u2013 thi\u1ebft l\u1eadp l\u1ea1i\u201d, v\u00e0 s\u1eed d\u1ee5ng n\u00f3 m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3. <code data-no-auto-translation=\"\">pre_get_posts<\/code> Vi\u1ec7c t\u1ed1i \u01b0u h\u00f3a truy v\u1ea5n ch\u00ednh v\u00e0 \u00e1p d\u1ee5ng c\u00e1c chi\u1ebfn l\u01b0\u1ee3c l\u01b0u tr\u1eef \u0111\u1ec7m (cache) \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o hi\u1ec7u su\u1ea5t l\u00e0 nh\u1eefng k\u1ef9 n\u0103ng c\u01a1 b\u1ea3n m\u00e0 m\u1ecdi nh\u00e0 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng chuy\u00ean nghi\u1ec7p c\u1ea7n n\u1eafm v\u1eefng. Th\u00f4ng qua th\u1ef1c h\u00e0nh, b\u1ea1n s\u1ebd c\u00f3 th\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c gi\u1ea3i ph\u00e1p hi\u1ec3n th\u1ecb n\u1ed9i dung \u0111\u1ed9ng hi\u1ec7u qu\u1ea3, linh ho\u1ea1t v\u00e0 d\u1ec5 b\u1ea3o tr\u00ec, \u0111\u00e1p \u1ee9ng<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ \u5e38\u89c1\u95ee\u9898<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">K\u1ebft qu\u1ea3 truy v\u1ea5n WP_Query tr\u1ed1ng, l\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 g\u1ee1 l\u1ed7i?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tr\u01b0\u1edbc h\u1ebft, h\u00e3y ki\u1ec3m tra xem li\u1ec7u c\u00e1ch vi\u1ebft v\u00e0 gi\u00e1 tr\u1ecb c\u1ee7a m\u1ea3ng c\u00e1c tham s\u1ed1 c\u00f3 ch\u00ednh x\u00e1c hay kh\u00f4ng, \u0111\u1eb7c bi\u1ec7t l\u00e0 t\u00ean h\u1ec7 th\u1ed1ng ph\u00e2n lo\u1ea1i, m\u00e3 nh\u1eadn d\u1ea1ng lo\u1ea1i b\u00e0i vi\u1ebft, v.v. Sau \u0111\u00f3, h\u00e3y s\u1eed d\u1ee5ng nh\u1eefng th\u00f4ng tin \u0111\u00f3 \u0111\u1ec3 ti\u1ebfp t\u1ee5c th\u1ef1c hi\u1ec7n c\u00e1c b\u01b0\u1edbc ti\u1ebfp theo. <code data-no-auto-translation=\"\">print_r( $query-&gt;request );<\/code> Sau khi kh\u1edfi t\u1ea1o \u0111\u1ed1i t\u01b0\u1ee3ng truy v\u1ea5n, h\u00e3y in ra c\u00e1c c\u00e2u l\u1ec7nh SQL th\u1ef1c s\u1ef1 \u0111\u01b0\u1ee3c th\u1ef1c thi; \u0111i\u1ec1u n\u00e0y s\u1ebd gi\u00fap b\u1ea1n bi\u1ebft r\u00f5 c\u00e1c \u0111i\u1ec1u ki\u1ec7n truy v\u1ea5n m\u1ed9t c\u00e1ch tr\u1ef1c ti\u1ebfp. Cu\u1ed1i c\u00f9ng, h\u00e3y \u0111\u1ea3m b\u1ea3o r\u1eb1ng n\u1ed9i dung b\u1ea1n \u0111ang truy v\u1ea5n th\u1ef1c s\u1ef1 t\u1ed3n t\u1ea1i v\u00e0 c\u00f3 tr\u1ea1ng th\u00e1i l\u00e0 \u201c\u0111\u00e3 \u0111\u01b0\u1ee3c c\u00f4ng b\u1ed1\u201d (<code data-no-auto-translation=\"\">publish<\/code>M\u1eb7c \u0111\u1ecbnh <code data-no-auto-translation=\"\">WP_Query<\/code> Ch\u1ee9c n\u0103ng kh\u00f4ng cho ph\u00e9p truy c\u1eadp ho\u1eb7c xem c\u00e1c b\u1ea3n th\u1ea3o (drafts) ho\u1eb7c c\u00e1c b\u00e0i vi\u1ebft \u0111\u01b0\u1ee3c l\u00ean l\u1ecbch \u0111\u0103ng (scheduled articles).<\/p>\n<!-- AUTO_INTERNAL_LINKS_START --><p>\u0110\u1ecdc th\u00eam <a href=\"https:\/\/www.likacloud.com\/es\/knowledge\/wordpress\/wordpress-theme-development-custom-theme-guide-2026\/\">Ph\u00e1t tri\u1ec3n ch\u1ee7 \u0111\u1ec1 WordPress: H\u01b0\u1edbng d\u1eabn to\u00e0n di\u1ec7n \u0111\u1ec3 t\u1ea1o ch\u1ee7 \u0111\u1ec1 t\u00f9y ch\u1ec9nh t\u1eeb \u0111\u1ea7u<\/a>\u3002<\/p><!-- AUTO_INTERNAL_LINKS_END -->\n\n\n\n\n<h3 class=\"wp-block-heading\">N\u00ean s\u1eed d\u1ee5ng WP_Query hay get_posts?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code data-no-auto-translation=\"\">get_posts<\/code> S\u1eed d\u1ee5ng b\u00ean trong h\u00e0m <code data-no-auto-translation=\"\">WP_Query<\/code>Nh\u01b0ng n\u00f3 m\u1eb7c \u0111\u1ecbnh tr\u1ea3 v\u1ec1 m\u1ed9t m\u1ea3ng c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng b\u00e0i vi\u1ebft, v\u00e0 kh\u00f4ng thay \u0111\u1ed5i c\u00e1c bi\u1ebfn to\u00e0n c\u1ee5c (nh\u01b0\u2026) <code data-no-auto-translation=\"\">$post<\/code>V\u00ec v\u1eady, th\u01b0\u1eddng kh\u00f4ng c\u1ea7n ph\u1ea3i g\u1ecdi (th\u1ef1c hi\u1ec7n h\u00e0nh \u0111\u1ed9ng t\u01b0\u01a1ng \u1ee9ng). <code data-no-auto-translation=\"\">wp_reset_postdata()<\/code>N\u00f3 nh\u1eb9 h\u01a1n v\u00e0 th\u00edch h\u1ee3p cho c\u00e1c t\u00e1c v\u1ee5 thu th\u1eadp d\u1eef li\u1ec7u \u0111\u01a1n gi\u1ea3n, ch\u1eb3ng h\u1ea1n nh\u01b0 t\u1ea1o m\u1ed9t danh s\u00e1ch li\u00ean k\u1ebft.<code data-no-auto-translation=\"\">WP_Query<\/code> \u0110\u1ed1i t\u01b0\u1ee3ng n\u00e0y c\u00f3 ch\u1ee9c n\u0103ng \u0111a d\u1ea1ng h\u01a1n; n\u00f3 qu\u1ea3n l\u00fd c\u00e1c th\u00f4ng tin ph\u1ee5 nh\u01b0 vi\u1ec7c ph\u00e2n trang v\u00e0 t\u1ed5ng s\u1ed1 ph\u1ea7n t\u1eed. V\u00f2ng l\u1eb7p c\u1ee7a n\u00f3 c\u00f3 th\u1ec3 thi\u1ebft l\u1eadp \u0111\u00fang c\u00e1c bi\u1ebfn to\u00e0n c\u1ee5c \u0111\u1ec3 h\u1ed7 tr\u1ee3 ho\u1ea1t \u0111\u1ed9ng x\u1eed l\u00fd d\u1eef li\u1ec7u. <code data-no-auto-translation=\"\">the_title()<\/code> C\u00e1c th\u1ebb m\u1eabu nh\u01b0 v\u1eady l\u00e0 l\u1ef1a ch\u1ecdn h\u00e0ng \u0111\u1ea7u \u0111\u1ec3 x\u00e2y d\u1ef1ng n\u1ed9i dung l\u1eb7p l\u1ea1i trong c\u00e1c m\u1eabu ch\u1ee7 \u0111\u1ec1 (theme templates).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 t\u00ecm ki\u1ebfm c\u00e1c b\u00e0i vi\u1ebft c\u1ee7a m\u1ed9t t\u00e1c gi\u1ea3 c\u1ee5 th\u1ec3 ho\u1eb7c \u0111\u01b0\u1ee3c vi\u1ebft v\u00e0o m\u1ed9t ng\u00e0y nh\u1ea5t \u0111\u1ecbnh?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3 th\u1ec3 s\u1eed d\u1ee5ng <code data-no-auto-translation=\"\">author<\/code> C\u00e1c tham s\u1ed1 (ch\u1ea5p nh\u1eadn ID t\u00e1c gi\u1ea3, t\u00ean ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c bi\u1ec7t danh ng\u01b0\u1eddi d\u00f9ng) v\u00e0 <code data-no-auto-translation=\"\">date_query<\/code> Tham s\u1ed1 (Parameter).<code data-no-auto-translation=\"\">date_query<\/code> R\u1ea5t m\u1ea1nh m\u1ebd; cho ph\u00e9p b\u1ea1n t\u00ecm ki\u1ebfm theo ng\u00e0y c\u1ee5 th\u1ec3, kho\u1ea3ng th\u1eddi gian (n\u0103m\/th\u00e1ng\/ng\u00e0y), ho\u1eb7c c\u00e1c kho\u1ea3ng th\u1eddi gian t\u01b0\u01a1ng \u0111\u1ed1i (v\u00ed d\u1ee5: \u201c30 ng\u00e0y g\u1ea7n \u0111\u00e2y\u201d).<\/p>\n<!-- AUTO_SYNCED_PATTERN_INSERT_START -->\n\r\n<div class=\"flex justify-between items-center flex-col lg:flex-row xl:flex-col 2xl:flex-row gap-6 sm:gap-8 rounded-lg border border-gray-200 dark:border-gray-700 p-4 mb-8 lg:mb-10 sm:p-6 bg-white dark:bg-gray-750 shadow-md transition-colors duration-300\"\r\n     data-link=\"https:\/\/www.likacloud.com\/vi\/tolink\/interserver-webhosting\/\">\r\n     \r\n  <div class=\"flex flex-col gap-3 gap-4 sm:gap-6 w-full\">\r\n    <strong class=\"text-2xl font-semibold text-gray-900 dark:text-gray-200\">\r\n      M\u00e1y ch\u1ee7 chia s\u1ebb c\u1ee7a InterServer    <\/strong>\r\n    <div class=\"text-gray-600 dark:text-gray-300 word-word\">L\u01b0u tr\u1eef chia s\u1ebb v\u1edbi m\u1ee9c ph\u00ed $2,50 USD m\u1ed7i th\u00e1ng, gi\u1ea3m gi\u00e1 $0,1 USD trong th\u00e1ng \u0111\u1ea7u ti\u00ean, m\u00e3 gi\u1ea3m gi\u00e1 tryinterserver, v\u1edbi 461 \u1ee9ng d\u1ee5ng \u0111\u00e1m m\u00e2y v\u00e0 c\u00e0i \u0111\u1eb7t ch\u1ec9 b\u1eb1ng m\u1ed9t c\u00fa nh\u1ea5p chu\u1ed9t.<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"flex items-center flex-col md:flex-row lg:flex-col xl:flex-row 2xl:flex-col gap-6 shrink-0\">\r\n          <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/interserver-webhosting\/\">\r\n                  <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/12\/20251228045033.svg\" alt=\"Logo c\u1ee7a InterServer\" class=\"content-promotion-card-icon h-9 min-h-9 dark:hidden\" title=\"\">\r\n          <img decoding=\"async\" src=\"https:\/\/www.likacloud.com\/wp-content\/uploads\/2025\/12\/20251229054830.webp\" alt=\"Logo c\u1ee7a InterServer\" class=\"content-promotion-card-icon h-9 min-h-9 hidden dark:block\" title=\"\">\r\n              <\/a>\r\n    \r\n    <a href=\"https:\/\/www.likacloud.com\/vi\/tolink\/interserver-webhosting\/\"\r\n       class=\"bg-blue-500 w-full md:w-auto lg:w-full xl:w-auto 2xl:w-full text-center !text-white dark:!text-gray-200 !px-5 !py-1.5 rounded-full hover:bg-blue-600 transition-colors\">\r\n       Truy c\u1eadp trang    <\/a>\r\n  <\/div>\r\n<\/div>\n<!-- AUTO_SYNCED_PATTERN_INSERT_END -->\n\n\n\n\n\n<pre class=\"wp-block-code\" data-no-auto-translation=\"\"><code class=\"language-php\" data-no-auto-translation=\"\">$args = array(\n    &#039;author&#039; =&gt; 5, \/\/ \u67e5\u8be2ID\u4e3a5\u7684\u4f5c\u8005\u7684\u6587\u7ae0\n    &#039;date_query&#039; =&gt; array(\n        array(\n            &#039;after&#039; =&gt; &#039;2026-01-01&#039;, \/\/ 2026\u5e741\u67081\u65e5\u4e4b\u540e\n            &#039;before&#039; =&gt; &#039;2026-12-31&#039;, \/\/ 2026\u5e7412\u670831\u65e5\u4e4b\u524d\n            &#039;inclusive&#039; =&gt; true, \/\/ \u5305\u542b\u8d77\u6b62\u65e5\u671f\n        ),\n    ),\n);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">T\u1ea1i sao l\u1ea1i c\u1ea7n ph\u1ea3i g\u1ecdi h\u00e0m `wp_reset_postdata()`?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728 <code data-no-auto-translation=\"\">WP_Query<\/code> Trong v\u00f2ng l\u1eb7p,<code data-no-auto-translation=\"\">the_post()<\/code> Ph\u01b0\u01a1ng th\u1ee9c n\u00e0y s\u1ebd thi\u1ebft l\u1eadp gi\u00e1 tr\u1ecb \u1edf c\u1ea5p \u0111\u1ed9 to\u00e0n c\u1ee5c (to\u00e0n h\u1ec7 th\u1ed1ng). <code data-no-auto-translation=\"\">$post<\/code> Bi\u1ebfn. N\u1ebfu kh\u00f4ng \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp l\u1ea1i gi\u00e1 tr\u1ecb ban \u0111\u1ea7u, c\u00e1c \u0111o\u1ea1n m\u00e3 ti\u1ebfp theo (ch\u1eb3ng h\u1ea1n nh\u01b0 c\u00e1c ph\u1ea7n kh\u00e1c c\u1ee7a v\u00f2ng l\u1eb7p ch\u00ednh, c\u00e1c ti\u1ec7n \u00edch trong thanh b\u00ean c\u1ea1nh, ho\u1eb7c m\u1ed9t s\u1ed1 ch\u1ee9c n\u0103ng c\u1ee7a plugin) c\u00f3 th\u1ec3 s\u1ebd s\u1eed d\u1ee5ng sai gi\u00e1 tr\u1ecb c\u1ee7a bi\u1ebfn n\u00e0y (gi\u00e1 tr\u1ecb \u0111\u00e3 b\u1ecb thay \u0111\u1ed5i). <code data-no-auto-translation=\"\">$post<\/code> \u0110\u1ed1i t\u01b0\u1ee3ng n\u00e0y c\u00f3 th\u1ec3 g\u00e2y ra hi\u1ec7n t\u01b0\u1ee3ng hi\u1ec3n th\u1ecb n\u1ed9i dung sai l\u1ec7ch ho\u1eb7c d\u1eabn \u0111\u1ebfn h\u00e0nh vi kh\u00f4ng mong mu\u1ed1n (kh\u00f4ng ch\u00ednh x\u00e1c).<code data-no-auto-translation=\"\">wp_reset_postdata()<\/code> Ch\u1ee9c n\u0103ng c\u1ee7a n\u00f3 l\u00e0\u2026 (The function of it is\u2026) <code data-no-auto-translation=\"\">$post<\/code> Kh\u00f4i ph\u1ee5c n\u1ed9i dung b\u00e0i vi\u1ebft hi\u1ec7n t\u1ea1i tr\u1edf l\u1ea1i truy v\u1ea5n ch\u00ednh l\u00e0 m\u1ed9t b\u01b0\u1edbc r\u1ea5t quan tr\u1ecdng nh\u1eb1m \u0111\u1ea3m b\u1ea3o t\u00ednh nh\u1ea5t qu\u00e1n trong m\u00f4i tr\u01b0\u1eddng to\u00e0n c\u1ee5c. \u0110\u00e2y l\u00e0 m\u1ed9t bi\u1ec7n ph\u00e1p b\u1ea3o m\u1eadt c\u1ef1c k\u1ef3 c\u1ea7n thi\u1ebft.<\/p>","protected":false},"excerpt":{"rendered":"<p>B\u00e0i vi\u1ebft n\u00e0y \u0111i s\u00e2u v\u00e0o t\u00ecm hi\u1ec3u v\u1ec1 l\u1edbp WP_Query trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n WordPress \u2013 \u0111\u00e2y l\u00e0 c\u00f4ng c\u1ee5 then ch\u1ed1t gi\u00fap v\u01b0\u1ee3t qua v\u00f2ng l\u1eb7p ch\u00ednh m\u1eb7c \u0111\u1ecbnh c\u1ee7a h\u1ec7 th\u1ed1ng v\u00e0 th\u1ef1c hi\u1ec7n vi\u1ec7c ki\u1ec3m so\u00e1t n\u1ed9i dung m\u1ed9t c\u00e1ch ch\u00ednh x\u00e1c. B\u00e0i vi\u1ebft ph\u00e2n t\u00edch chi ti\u1ebft h\u1ec7 th\u1ed1ng c\u00e1c tham s\u1ed1 c\u1ed1t l\u00f5i c\u1ee7a WP_Query, bao g\u1ed3m c\u00e1c thao t\u00e1c truy v\u1ea5n c\u01a1 b\u1ea3n, vi\u1ec7c trang tr\u00ed trang (pagination), c\u0169ng nh\u01b0 c\u00e1ch s\u1eed d\u1ee5ng tax_query v\u00e0 meta_query \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c b\u1ed9 l\u1ecdc ph\u1ee9c t\u1ea1p. Ngo\u00e0i ra, b\u00e0i vi\u1ebft c\u00f2n cung c\u1ea5p ph\u01b0\u01a1ng ph\u00e1p ti\u00eau chu\u1ea9n \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c v\u00f2ng l\u1eb7p truy v\u1ea5n t\u00f9y ch\u1ec9nh, tr\u1edf th\u00e0nh h\u01b0\u1edbng d\u1eabn h\u1eefu \u00edch cho vi\u1ec7c ph\u00e1t tri\u1ec3n c\u00e1c t\u00ednh n\u0103ng n\u00e2ng cao cho c\u00e1c giao di\u1ec7n (theme) c\u1ee7a WordPress.<\/p>","protected":false},"author":7,"featured_media":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"tags":[806,3369,804,2811,3370],"knowledge_category":[280],"class_list":["post-12380145","knowledge_post","type-knowledge_post","status-publish","hentry","tag-wordpress-development","tag-wp-query","tag-theme-development","tag-content-loop","tag-database-queries","knowledge_category-wordpress"],"acf":{"site_seo_keywords":"WP_Query, WordPress \u4e3b\u9898\u5f00\u53d1, \u5185\u5bb9\u5faa\u73af, \u81ea\u5b9a\u4e49\u67e5\u8be2, \u5206\u7c7b\u6cd5\u67e5\u8be2, \u5143\u6570\u636e\u67e5\u8be2, \u7cbe\u51c6\u63a7\u5236\u6587\u7ae0\u8f93\u51fa, WordPress \u9ad8\u7ea7\u529f\u80fd"},"_links":{"self":[{"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/knowledge_posts\/12380145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/knowledge_posts"}],"about":[{"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/types\/knowledge_post"}],"author":[{"embeddable":true,"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/users\/7"}],"version-history":[{"count":1,"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/knowledge_posts\/12380145\/revisions"}],"predecessor-version":[{"id":12406424,"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/knowledge_posts\/12380145\/revisions\/12406424"}],"wp:attachment":[{"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/media?parent=12380145"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/tags?post=12380145"},{"taxonomy":"knowledge_category","embeddable":true,"href":"https:\/\/www.likacloud.com\/vi\/wp-json\/wp\/v2\/knowledge_category?post=12380145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}