
{"id":9821,"date":"2025-05-04T08:51:24","date_gmt":"2025-05-04T01:51:24","guid":{"rendered":"https:\/\/tapchicntt.com\/?p=9821"},"modified":"2025-05-02T08:52:06","modified_gmt":"2025-05-02T01:52:06","slug":"wordpress-mot-so-filter-hook-thuong-dung","status":"publish","type":"post","link":"https:\/\/tapchicntt.com\/wordpress-mot-so-filter-hook-thuong-dung\/","title":{"rendered":"[WordPress] M\u1ed9t s\u1ed1 Filter hook th\u01b0\u1eddng d\u00f9ng"},"content":{"rendered":"\n<p>Filter Hook trong WordPress cho ph\u00e9p b\u1ea1n &#8220;l\u1ecdc&#8221; v\u00e0 s\u1eeda \u0111\u1ed5i d\u1eef li\u1ec7u trong qu\u00e1 tr\u00ecnh x\u1eed l\u00fd c\u1ee7a WordPress. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 Filter Hook ph\u1ed5 bi\u1ebfn v\u00e0 quan tr\u1ecdng, \u0111\u01b0\u1ee3c nh\u00f3m theo lo\u1ea1i d\u1eef li\u1ec7u m\u00e0 ch\u00fang th\u01b0\u1eddng t\u00e1c \u0111\u1ed9ng:<\/p>\n\n\n\n<p><strong>N\u1ed9i dung b\u00e0i vi\u1ebft v\u00e0 trang:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>the_content<\/code>: L\u1ecdc n\u1ed9i dung c\u1ee7a b\u00e0i vi\u1ebft ho\u1eb7c trang tr\u01b0\u1edbc khi hi\u1ec3n th\u1ecb. R\u1ea5t th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 th\u00eam shortcode, \u0111\u1ecbnh d\u1ea1ng l\u1ea1i n\u1ed9i dung, ho\u1eb7c ch\u00e8n qu\u1ea3ng c\u00e1o.<\/li>\n\n\n\n<li><code>the_excerpt<\/code>: L\u1ecdc \u0111o\u1ea1n tr\u00edch c\u1ee7a b\u00e0i vi\u1ebft tr\u01b0\u1edbc khi hi\u1ec3n th\u1ecb.<\/li>\n\n\n\n<li><code>excerpt_length<\/code>: Cho ph\u00e9p b\u1ea1n thay \u0111\u1ed5i \u0111\u1ed9 d\u00e0i m\u1eb7c \u0111\u1ecbnh c\u1ee7a \u0111o\u1ea1n tr\u00edch (t\u00ednh b\u1eb1ng t\u1eeb).<\/li>\n\n\n\n<li><code>excerpt_more<\/code>: Cho ph\u00e9p b\u1ea1n thay \u0111\u1ed5i d\u1ea5u &#8220;&#8230;&#8221; ho\u1eb7c li\u00ean k\u1ebft &#8220;\u0110\u1ecdc th\u00eam&#8221; \u1edf cu\u1ed1i \u0111o\u1ea1n tr\u00edch.<\/li>\n\n\n\n<li><code>the_title<\/code>: L\u1ecdc ti\u00eau \u0111\u1ec1 c\u1ee7a b\u00e0i vi\u1ebft ho\u1eb7c trang tr\u01b0\u1edbc khi hi\u1ec3n th\u1ecb.<\/li>\n\n\n\n<li><code>wp_title<\/code>: L\u1ecdc ti\u00eau \u0111\u1ec1 c\u1ee7a trang web, th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 \u0111i\u1ec1u ch\u1ec9nh \u0111\u1ecbnh d\u1ea1ng ti\u00eau \u0111\u1ec1 cho SEO.<\/li>\n\n\n\n<li><code>the_permalink<\/code>: L\u1ecdc URL (\u0111\u01b0\u1eddng d\u1eabn t\u0129nh) c\u1ee7a b\u00e0i vi\u1ebft ho\u1eb7c trang.<\/li>\n\n\n\n<li><code>post_class<\/code>: L\u1ecdc c\u00e1c class CSS \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng cho th\u1ebb\u00a0<code>&lt;body><\/code>\u00a0c\u1ee7a m\u1ed9t b\u00e0i vi\u1ebft trong v\u00f2ng l\u1eb7p.<\/li>\n\n\n\n<li><code>body_class<\/code>: L\u1ecdc c\u00e1c class CSS \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng cho th\u1ebb\u00a0<code>&lt;body><\/code>\u00a0c\u1ee7a trang.<\/li>\n\n\n\n<li><code>the_content_more_link<\/code>: L\u1ecdc li\u00ean k\u1ebft &#8220;\u0110\u1ecdc ti\u1ebfp&#8221; trong n\u1ed9i dung b\u00e0i vi\u1ebft.<\/li>\n<\/ul>\n\n\n\n<p><strong>Ti\u00eau \u0111\u1ec1 v\u00e0 Meta:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>wp_title_parts<\/code>: L\u1ecdc c\u00e1c ph\u1ea7n t\u1eed t\u1ea1o n\u00ean ti\u00eau \u0111\u1ec1 trang web (v\u00ed d\u1ee5: ti\u00eau \u0111\u1ec1 b\u00e0i vi\u1ebft, ti\u00eau \u0111\u1ec1 trang, t\u00ean trang web).<\/li>\n\n\n\n<li><code>wp_title_sep<\/code>: L\u1ecdc d\u1ea5u ph\u00e2n c\u00e1ch gi\u1eefa c\u00e1c ph\u1ea7n t\u1eed c\u1ee7a ti\u00eau \u0111\u1ec1 trang web.<\/li>\n\n\n\n<li><code>get_post_metadata<\/code>,\u00a0<code>update_post_metadata<\/code>,\u00a0<code>add_post_metadata<\/code>,\u00a0<code>delete_post_metadata<\/code>: C\u00e1c filter cho ph\u00e9p b\u1ea1n can thi\u1ec7p v\u00e0o qu\u00e1 tr\u00ecnh l\u1ea5y, c\u1eadp nh\u1eadt, th\u00eam v\u00e0 x\u00f3a meta c\u1ee7a b\u00e0i vi\u1ebft. T\u01b0\u01a1ng t\u1ef1 c\u00f3 c\u00e1c filter cho user meta (<code>get_user_metadata<\/code>, &#8230;), term meta (<code>get_term_metadata<\/code>, &#8230;).<\/li>\n<\/ul>\n\n\n\n<p><strong>\u0110o\u1ea1n tr\u00edch v\u00e0 T\u00f3m t\u1eaft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>wp_trim_excerpt<\/code>: L\u1ecdc \u0111o\u1ea1n tr\u00edch \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea1o b\u1edfi WordPress tr\u01b0\u1edbc khi hi\u1ec3n th\u1ecb. Cho ph\u00e9p b\u1ea1n t\u00f9y ch\u1ec9nh to\u00e0n b\u1ed9 qu\u00e1 tr\u00ecnh t\u1ea1o \u0111o\u1ea1n tr\u00edch.<\/li>\n<\/ul>\n\n\n\n<p><strong>URL v\u00e0 Li\u00ean k\u1ebft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>the_permalink<\/code>: (\u0110\u00e3 \u0111\u1ec1 c\u1eadp \u1edf tr\u00ean)<\/li>\n\n\n\n<li><code>post_link<\/code>,\u00a0<code>page_link<\/code>,\u00a0<code>attachment_link<\/code>,\u00a0<code>category_link<\/code>,\u00a0<code>tag_link<\/code>,\u00a0<code>author_link<\/code>,\u00a0<code>home_url<\/code>,\u00a0<code>site_url<\/code>: C\u00e1c filter \u0111\u1ec3 t\u00f9y ch\u1ec9nh c\u00e1c lo\u1ea1i URL kh\u00e1c nhau trong WordPress.<\/li>\n\n\n\n<li><code>rewrite_rules_array<\/code>: L\u1ecdc m\u1ea3ng c\u00e1c quy t\u1eafc rewrite URL. Th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng khi t\u1ea1o custom post type ho\u1eb7c taxonomy \u0111\u1ec3 t\u00f9y ch\u1ec9nh URL.<\/li>\n\n\n\n<li><code>query_vars<\/code>: L\u1ecdc danh s\u00e1ch c\u00e1c bi\u1ebfn truy v\u1ea5n (query variables) \u0111\u01b0\u1ee3c WordPress nh\u1eadn di\u1ec7n.<\/li>\n<\/ul>\n\n\n\n<p><strong>H\u00ecnh \u1ea3nh v\u00e0 Media:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>wp_get_attachment_image_attributes<\/code>: L\u1ecdc c\u00e1c thu\u1ed9c t\u00ednh HTML c\u1ee7a th\u1ebb\u00a0<code>&lt;img><\/code>\u00a0\u0111\u01b0\u1ee3c t\u1ea1o b\u1edfi\u00a0<code>wp_get_attachment_image()<\/code>.<\/li>\n\n\n\n<li><code>wp_prepare_attachment_for_js<\/code>: L\u1ecdc d\u1eef li\u1ec7u v\u1ec1 attachment tr\u01b0\u1edbc khi n\u00f3 \u0111\u01b0\u1ee3c tr\u1ea3 v\u1ec1 cho JavaScript trong media library.<\/li>\n\n\n\n<li><code>image_size_names_choose<\/code>: L\u1ecdc danh s\u00e1ch c\u00e1c k\u00edch th\u01b0\u1edbc h\u00ecnh \u1ea3nh hi\u1ec3n th\u1ecb trong tr\u00ecnh ch\u1ec9nh s\u1eeda media.<\/li>\n<\/ul>\n\n\n\n<p><strong>Ng\u01b0\u1eddi d\u00f9ng:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>authenticate<\/code>: L\u1ecdc k\u1ebft qu\u1ea3 c\u1ee7a qu\u00e1 tr\u00ecnh x\u00e1c th\u1ef1c ng\u01b0\u1eddi d\u00f9ng.<\/li>\n\n\n\n<li><code>login_redirect<\/code>: L\u1ecdc URL chuy\u1ec3n h\u01b0\u1edbng sau khi \u0111\u0103ng nh\u1eadp th\u00e0nh c\u00f4ng.<\/li>\n\n\n\n<li><code>register_url<\/code>: L\u1ecdc URL c\u1ee7a trang \u0111\u0103ng k\u00fd.<\/li>\n\n\n\n<li><code>lostpassword_url<\/code>: L\u1ecdc URL c\u1ee7a trang qu\u00ean m\u1eadt kh\u1ea9u.<\/li>\n\n\n\n<li><code>user_contactmethods<\/code>: L\u1ecdc danh s\u00e1ch c\u00e1c tr\u01b0\u1eddng th\u00f4ng tin li\u00ean h\u1ec7 hi\u1ec3n th\u1ecb trong h\u1ed3 s\u01a1 ng\u01b0\u1eddi d\u00f9ng.<\/li>\n<\/ul>\n\n\n\n<p><strong>T\u00f9y ch\u1ecdn (Options):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>pre_option_{$option_name}<\/code>: \u0110\u01b0\u1ee3c g\u1ecdi tr\u01b0\u1edbc khi WordPress truy v\u1ea5n m\u1ed9t t\u00f9y ch\u1ecdn c\u1ee5 th\u1ec3 t\u1eeb database. Cho ph\u00e9p b\u1ea1n tr\u1ea3 v\u1ec1 m\u1ed9t gi\u00e1 tr\u1ecb t\u00f9y ch\u1ec9nh m\u00e0 kh\u00f4ng c\u1ea7n truy v\u1ea5n database.<\/li>\n\n\n\n<li><code>option_{$option_name}<\/code>: L\u1ecdc gi\u00e1 tr\u1ecb c\u1ee7a m\u1ed9t t\u00f9y ch\u1ecdn c\u1ee5 th\u1ec3 sau khi n\u00f3 \u0111\u00e3 \u0111\u01b0\u1ee3c truy v\u1ea5n t\u1eeb database.<\/li>\n\n\n\n<li><code>update_option_{$option_name}<\/code>: L\u1ecdc gi\u00e1 tr\u1ecb c\u1ee7a m\u1ed9t t\u00f9y ch\u1ecdn tr\u01b0\u1edbc khi n\u00f3 \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt v\u00e0o database.<\/li>\n\n\n\n<li><code>add_option_{$option_name}<\/code>: L\u1ecdc gi\u00e1 tr\u1ecb c\u1ee7a m\u1ed9t t\u00f9y ch\u1ecdn tr\u01b0\u1edbc khi n\u00f3 \u0111\u01b0\u1ee3c th\u00eam v\u00e0o database.<\/li>\n\n\n\n<li><code>default_option_{$option_name}<\/code>: L\u1ecdc gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh c\u1ee7a m\u1ed9t t\u00f9y ch\u1ecdn n\u1ebfu n\u00f3 ch\u01b0a \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp.<\/li>\n<\/ul>\n\n\n\n<p><strong>HTTP API:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>pre_http_request<\/code>: M\u1ed9t filter m\u1ea1nh m\u1ebd cho ph\u00e9p b\u1ea1n ch\u1eb7n m\u1ed9t HTTP request v\u00e0 tr\u1ea3 v\u1ec1 k\u1ebft qu\u1ea3 t\u00f9y ch\u1ec9nh.<\/li>\n\n\n\n<li><code>http_request_args<\/code>: L\u1ecdc c\u00e1c arguments \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 th\u1ef1c hi\u1ec7n HTTP request.<\/li>\n\n\n\n<li><code>http_response<\/code>: L\u1ecdc to\u00e0n b\u1ed9 HTTP response.<\/li>\n\n\n\n<li><code>wp_http_curl_args<\/code>: L\u1ecdc c\u00e1c arguments \u0111\u01b0\u1ee3c truy\u1ec1n cho h\u00e0m\u00a0<code>curl_setopt()<\/code>\u00a0khi s\u1eed d\u1ee5ng cURL cho HTTP request.<\/li>\n<\/ul>\n\n\n\n<p><strong>REST API:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>rest_pre_dispatch<\/code>: L\u1ecdc k\u1ebft qu\u1ea3 tr\u01b0\u1edbc khi m\u1ed9t REST API request \u0111\u01b0\u1ee3c dispatch \u0111\u1ebfn handler c\u1ee7a n\u00f3.<\/li>\n\n\n\n<li><code>rest_{$this->post_type}_query<\/code>: L\u1ecdc c\u00e1c arguments \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 truy v\u1ea5n c\u00e1c post type c\u1ee5 th\u1ec3 th\u00f4ng qua REST API.<\/li>\n\n\n\n<li><code>rest_prepare_{$this->post_type}<\/code>: L\u1ecdc d\u1eef li\u1ec7u c\u1ee7a m\u1ed9t post type c\u1ee5 th\u1ec3 tr\u01b0\u1edbc khi n\u00f3 \u0111\u01b0\u1ee3c tr\u1ea3 v\u1ec1 trong response c\u1ee7a REST API.<\/li>\n<\/ul>\n\n\n\n<p><strong>Kh\u00e1c:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>locale<\/code>: L\u1ecdc ng\u00f4n ng\u1eef hi\u1ec7n t\u1ea1i c\u1ee7a WordPress.<\/li>\n\n\n\n<li><code>kses_allowed_protocols<\/code>: L\u1ecdc danh s\u00e1ch c\u00e1c giao th\u1ee9c \u0111\u01b0\u1ee3c cho ph\u00e9p trong qu\u00e1 tr\u00ecnh l\u1ecdc HTML b\u1eb1ng\u00a0<code>kses<\/code>.<\/li>\n\n\n\n<li><code>allowed_http_origins<\/code>: L\u1ecdc danh s\u00e1ch c\u00e1c origin \u0111\u01b0\u1ee3c ph\u00e9p th\u1ef1c hi\u1ec7n CORS request.<\/li>\n<\/ul>\n\n\n\n<p>\u0110\u00e2y ch\u1ec9 l\u00e0 m\u1ed9t s\u1ed1 Filter Hook ph\u1ed5 bi\u1ebfn. T\u01b0\u01a1ng t\u1ef1 nh\u01b0 Action Hook, WordPress cung c\u1ea5p r\u1ea5t nhi\u1ec1u Filter Hook kh\u00e1c \u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 t\u00f9y ch\u1ec9nh d\u1eef li\u1ec7u \u1edf nhi\u1ec1u giai \u0111o\u1ea1n kh\u00e1c nhau.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Filter Hook trong WordPress cho ph\u00e9p b\u1ea1n &#8220;l\u1ecdc&#8221; v\u00e0 s\u1eeda \u0111\u1ed5i d\u1eef li\u1ec7u trong qu\u00e1 tr\u00ecnh x\u1eed l\u00fd c\u1ee7a WordPress. [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":9614,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[241],"tags":[],"class_list":["post-9821","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hooks"],"views":1336,"_links":{"self":[{"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/posts\/9821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/comments?post=9821"}],"version-history":[{"count":1,"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/posts\/9821\/revisions"}],"predecessor-version":[{"id":9822,"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/posts\/9821\/revisions\/9822"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/media\/9614"}],"wp:attachment":[{"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/media?parent=9821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/categories?post=9821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tapchicntt.com\/rest-api\/wp\/v2\/tags?post=9821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}