{"id":22810,"date":"2026-04-21T09:53:46","date_gmt":"2026-04-21T09:53:46","guid":{"rendered":"https:\/\/umang.pk\/2026\/04\/21\/cloudflare-%d8%b5%d9%81%d8%ad%d8%a7%d8%aa-%d9%be%d8%b1-astro-ssr-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d8%a8%d8%ba%db%8c%d8%b1\/"},"modified":"2026-04-21T09:53:49","modified_gmt":"2026-04-21T09:53:49","slug":"cloudflare-%d8%b5%d9%81%d8%ad%d8%a7%d8%aa-%d9%be%d8%b1-astro-ssr-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d8%a8%d8%ba%db%8c%d8%b1","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/04\/21\/cloudflare-%d8%b5%d9%81%d8%ad%d8%a7%d8%aa-%d9%be%d8%b1-astro-ssr-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d8%a8%d8%ba%db%8c%d8%b1\/","title":{"rendered":"Cloudflare \u0635\u0641\u062d\u0627\u062a \u067e\u0631 Astro SSR \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0628\u063a\u06cc\u0631 \u06c1\u06cc\u0688 \u0644\u06cc\u0633 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u06cc\u06c1 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0628\u063a\u06cc\u0631 \u06c1\u06cc\u0688 \u0644\u06cc\u0633 CMS \u06a9\u06d2 \u0628\u0637\u0648\u0631 Cloudflare \u067e\u06cc\u062c\u0632 \u067e\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a Astro \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u06cc\u0633\u06d2 \u0686\u0644\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u067e\u0631\u0627\u062c\u06cc\u06a9\u0679 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u062c\u0633 \u067e\u0631 \u0645\u06cc\u06ba \u062d\u0627\u0644 \u06c1\u06cc \u0645\u06cc\u06ba \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u062a\u06be\u0627 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0633\u0627\u0626\u0679 \u06a9\u06d2 \u067e\u0633\u062f\u06cc\u062f \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627 \u062a\u06be\u0627\u06d4 \u0645\u0648\u0627\u062f \u06a9\u0627 \u0646\u0638\u0645 \u0648 \u0646\u0633\u0642\u060c \u0628\u0644\u0627\u06af \u067e\u0648\u0633\u0679\u0633\u060c \u0627\u0648\u0631 \u0645\u06cc\u0688\u06cc\u0627 \u0633\u0628\u06be\u06cc \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0627\u06cc\u0688\u0645\u0646 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0633\u0646\u0628\u06be\u0627\u0644\u06d2 \u06af\u0626\u06d2 \u062a\u06be\u06d2\u06d4 \u0633\u0627\u0645\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0633\u0631\u0627 \u06a9\u06be\u0644\u0627 \u06c1\u0648\u0627 \u062a\u06be\u0627\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u062a\u06be\u06cc\u0645\u060c \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u060c \u06cc\u0627 Elementor \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u06cc\u06ba Elementor \u0645\u06cc\u06ba \u0648\u06c1\u06cc \u0646\u062a\u0627\u0626\u062c \u062d\u0627\u0635\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u0639\u0645\u0644 \u0633\u0633\u062a \u0627\u0648\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u0627 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0634\u06a9\u0644 \u06c1\u0648\u062a\u0627\u06d4 \u0688\u0631\u06cc\u06af \u0627\u06cc\u0646\u0688 \u0688\u0631\u0627\u067e \u0627\u0633 \u0648\u0642\u062a \u062a\u06a9 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0688\u06cc\u0632\u0627\u0626\u0646 \u062a\u06cc\u0627\u0631 \u0646\u06c1 \u06c1\u0648 \u062c\u0627\u0626\u06d2\u060c \u0627\u0648\u0631 \u06c1\u0631 \u0686\u06be\u0648\u0679\u06cc \u0627\u06cc\u0688\u062c\u0633\u0679\u0645\u0646\u0679 \u0645\u06cc\u06ba \u0636\u0631\u0648\u0631\u062a \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0648\u0642\u062a \u0644\u06af\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0627\u0633\u0679\u06cc\u06a9 \u0688\u0648\u06cc\u0644\u067e\u0631 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0645\u06cc\u06ba \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0627\u0648\u0631 \u0635\u0627\u0641 \u0646\u062a\u0627\u0626\u062c \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0648\u0688 \u0644\u06a9\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u06a9\u0627\u0645\u06cc\u0627\u0628 \u0631\u06c1\u0627 \u06c1\u0648\u06ba\u06d4 \u06a9\u0644\u0627\u0688 \u06a9\u0648\u0688 \u062c\u06cc\u0633\u06d2 \u0679\u0648\u0644\u0632 \u062a\u06a9\u0631\u0627\u0631 \u0633\u0627\u0626\u06cc\u06a9\u0644 \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u062e\u062a \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0644\u06c1\u0630\u0627 \u0645\u06cc\u06ba \u0646\u06d2 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u06a9\u0648\u0688 \u0645\u06cc\u06ba \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u06a9\u0648 \u0627\u0644\u06af \u0633\u06d2 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u0627 \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u06cc\u0627\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u06cc\u06c1 \u0628\u062a\u0627\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627 \u06a9\u06c1 \u0645\u06cc\u06ba \u0646\u06d2 \u06cc\u06c1 \u06a9\u06cc\u0633\u06d2 \u06a9\u06cc\u0627 \u062a\u0627\u06a9\u06c1 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u0627\u06cc\u0633\u06cc \u06c1\u06cc \u0636\u0631\u0648\u0631\u062a \u06a9\u0627 \u0633\u0627\u0645\u0646\u0627 \u06c1\u0648 \u062a\u0648 \u0622\u067e \u0622\u06af\u06d2 \u062c\u0627\u0646\u06d2 \u06a9\u0627 \u0631\u0627\u0633\u062a\u06c1 \u062c\u0627\u0646 \u0633\u06a9\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u06a9\u06d2 \u0622\u062e\u0631 \u0645\u06cc\u06ba \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u06c1\u0648\u06af\u0627:<\/p>\n<ul wp_automatic_readability=\"2\">\n<li wp_automatic_readability=\"-1\">\n<p>\u0633\u0628 \u0688\u0648\u0645\u06cc\u0646 \u0633\u06d2 REST API \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0627\u0646\u0633\u0679\u0627\u0644\u06cc\u0634\u0646 \u0645\u0648\u0627\u062f \u067e\u06cc\u0634 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>Astro SSR \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u062c\u0648 \u0631\u0648\u0679 \u0688\u0648\u0645\u06cc\u0646 \u0633\u06d2 \u0645\u0648\u0627\u062f \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>\u06c1\u0631 \u06af\u0679 \u067e\u0634 \u06a9\u0644\u0627\u0624\u0688 \u0641\u0644\u06cc\u0626\u0631 \u067e\u06cc\u062c\u0632 \u06a9\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u0648 \u0645\u062a\u062d\u0631\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>\u06c1\u06cc\u0688 \u0644\u06cc\u0633 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0633\u06cc\u0679 \u0627\u067e \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u06cc\u06a9\u06cc\u0648\u0631\u0679\u06cc \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06c1<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>\u0688\u0631\u0627\u0641\u0679 \u067e\u0648\u0633\u0679 \u06a9\u0627 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u062c\u0648 \u062f\u0648\u0646\u0648\u06ba \u0633\u0633\u0679\u0645\u0632 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0634\u0631\u0627\u0626\u0637:<\/strong> \u0622\u067e \u06a9\u0648 \u06a9\u0645\u0627\u0646\u0688 \u0644\u0627\u0626\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0622\u0631\u0627\u0645 \u062f\u06c1 \u0627\u0648\u0631 \u067e\u0631\u0633\u06a9\u0648\u0646 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u060c \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0627\u06cc\u0688\u0645\u0646 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0628\u0646\u06cc\u0627\u062f\u06cc \u0639\u0644\u0645 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u060c \u0627\u0648\u0631 \u0633\u0627\u062f\u06c1 \u0627\u0641\u0639\u0627\u0644 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u0627\u0648\u0631 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u0626\u06d2 \u06a9\u0627\u0641\u06cc \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u062c\u0627\u0646\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2.<\/p>\n<p>\u062c\u0627\u0631\u06cc \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u0648 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0627\u0646\u0633\u0679\u0627\u0644\u06cc\u0634\u0646\u060c \u0627\u06cc\u06a9 GitHub \u0627\u06a9\u0627\u0624\u0646\u0679\u060c \u0627\u0648\u0631 Cloudflare \u0627\u06a9\u0627\u0624\u0646\u0679 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-why-headless-wordpress\">\u06c1\u06cc\u0688 \u0644\u06cc\u0633 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u06cc\u0648\u06ba\u061f<\/h2>\n<p>\u06c1\u06cc\u0688 \u0644\u06cc\u0633 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u0648 \u0645\u0648\u0627\u062f \u06a9\u06cc \u062a\u0631\u0633\u06cc\u0644 \u0633\u06d2 \u0627\u0644\u06af \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0648\u06c1 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u0631\u06c1\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0648\u06c1 \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u06a9\u0631\u062a\u0627 \u06c1\u06d2: \u0645\u0648\u0627\u062f \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u0688\u06cc\u0679\u0631 \u06a9\u06d2 \u0645\u0648\u0627\u0641\u0642 \u0645\u06cc\u0646\u062c\u0645\u0646\u0679 \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0639\u0644\u06cc\u062d\u062f\u06c1 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0631\u06cc\u0646\u0688\u0631\u0646\u06af\u060c \u0631\u0648\u0679\u0646\u06af \u0627\u0648\u0631 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u06a9\u0686\u06be \u0627\u06cc\u0633\u06d2 \u062d\u0627\u0644\u0627\u062a \u06c1\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u06cc\u06c1 \u062a\u0642\u0633\u06cc\u0645 \u0627\u062f\u0627 \u06a9\u0631\u062a\u06cc \u06c1\u06d2:<\/p>\n<ul wp_automatic_readability=\"6.5\">\n<li wp_automatic_readability=\"0\">\n<p>\u0622\u067e \u06a9\u06d2 \u0645\u0648\u0627\u062f \u06a9\u06cc \u0679\u06cc\u0645 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u067e\u0631 \u062a\u0631\u0628\u06cc\u062a \u06cc\u0627\u0641\u062a\u06c1 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba \u06a9\u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0686\u06cc\u0632\u06cc\u06ba \u0633\u0633\u062a \u06c1\u0648 \u062c\u0627\u0626\u06cc\u06ba \u06af\u06cc\u06d4 \u06c1\u06cc\u0688 \u0644\u06cc\u0633 \u0622\u067e \u06a9\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u062c\u062f\u06cc\u062f \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"4\">\n<p>\u0622\u067e \u06a9\u06cc \u0633\u0627\u0626\u0679 \u06a9\u0648 \u0627\u06cc\u06a9 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06cc\u0627 \u062a\u0639\u0627\u0645\u0644 \u06a9\u06d2 \u067e\u06cc\u0679\u0631\u0646 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u062c\u0648 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u062a\u06be\u06cc\u0645 \u06cc\u0627 \u0635\u0641\u062d\u06c1 \u0628\u0646\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u0627 \u0645\u0634\u06a9\u0644 \u06c1\u06d2\u06d4 \u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u0688\u06cc\u0634 \u0628\u0648\u0631\u0688\u0632\u060c \u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u0679\u0648\u0644\u0632\u060c \u0688\u06cc\u0679\u0627 \u0633\u06d2 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0644\u06d2 \u0622\u0624\u0679\u060c \u06cc\u0627 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u06d2 \u0639\u0644\u0627\u0648\u06c1 APIs \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0646\u0636\u0645\u0627\u0645 \u0633\u0628 \u06cc\u06c1\u0627\u06ba \u0645\u0648\u0632\u0648\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"1\">\n<p>\u0622\u067e \u0627\u067e\u0646\u06d2 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0646\u0638\u0645 \u0648 \u0646\u0633\u0642 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u0633\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0628\u0646\u0627\u0626\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u06cc\u062c \u0688\u06cc\u0644\u06cc\u0648\u0631\u06cc \u0627\u0648\u0631 \u062c\u062f\u06cc\u062f \u0679\u0648\u0644\u0632 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0645\u0648\u0627\u062f \u0627\u0648\u0631 \u0645\u06cc\u0688\u06cc\u0627 \u06a9\u0648 \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u0633\u06d2 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 CDN \u06a9\u0627 JavaScript \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0688\u06cc\u0644\u06cc\u0648\u0631\u06cc \u06a9\u0648 \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u0633\u06d2 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u06cc\u0688 \u0644\u06cc\u0633 \u062f\u0648\u0646\u0648\u06ba \u067e\u0627\u0631\u0679\u06cc\u0648\u06ba \u06a9\u0648 \u0627\u067e\u0646\u0627 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"2\">\n<p>\u0622\u067e \u06a9\u0648 \u0645\u062a\u0639\u062f\u062f \u0633\u0637\u062d\u0648\u06ba \u067e\u0631 \u0627\u06cc\u06a9 \u06c1\u06cc \u0645\u0648\u0627\u062f \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0622\u067e \u06a9\u06cc \u0645\u0627\u0631\u06a9\u06cc\u0679\u0646\u06af \u0633\u0627\u0626\u0679\u060c \u0645\u0648\u0628\u0627\u0626\u0644 \u0627\u06cc\u067e\u060c \u0627\u0648\u0631 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0688\u06cc\u0634 \u0628\u0648\u0631\u0688 \u0627\u0633\u06cc REST API \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u067e\u06cc\u0634 \u06a9\u06cc\u06d2 \u062c\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u06c1\u06cc\u0688 \u0644\u06cc\u0633 \u062a\u0645\u0627\u0645 \u0633\u0627\u0626\u0679\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06cc \u0633\u0627\u0626\u0679 \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u0628\u0631\u0648\u0634\u0631 \u06c1\u06d2\u060c \u0627\u06cc\u06a9 \u0634\u062e\u0635 \u062a\u0645\u0627\u0645 \u0627\u06cc\u0688\u0645\u0646 \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u06cc\u0627 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u062f\u0648\u0633\u0631\u06d2 \u06a9\u0648\u0688 \u0628\u06cc\u0633 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u0648\u06cc\u0644\u067e\u0631 \u06a9\u0627 \u0648\u0642\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0627\u0633\u06d2 \u0686\u06be\u0648\u0691 \u062f\u06cc\u06ba\u06d4 \u0627\u06cc\u06a9 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u062a\u06be\u06cc\u0645 \u0627\u06cc\u06a9 \u0628\u06c1\u062a\u0631 \u062c\u0648\u0627\u0628 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-the-architecture\">\u0641\u0646 \u062a\u0639\u0645\u06cc\u0631<\/h2>\n<p>&quot;\u0633\u0631 \u06a9\u06d2 \u0628\u063a\u06cc\u0631&#8221; \u06a9\u06cc \u0627\u0635\u0637\u0644\u0627\u062d \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0633\u06d2 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0648\u06ba \u06a9\u0648 \u06c1\u0679\u0627\u0646\u0627\u06d4 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u0648\u0627\u0644\u0648\u06ba \u06a9\u0648 HTML \u0635\u0641\u062d\u0627\u062a \u0628\u0646\u0627\u0646\u06d2 \u0627\u0648\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c WordPress \u0635\u0631\u0641 REST APIs \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0645\u0648\u0627\u062f \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631 \u0627\u0648\u0631 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0639\u0644\u06cc\u062d\u062f\u06c1 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 (\u0627\u0633 \u0645\u0639\u0627\u0645\u0644\u06d2 \u0645\u06cc\u06ba \u0627\u06cc\u0633\u0679\u0631\u0648) \u0648\u06c1\u06cc \u062f\u06cc\u06a9\u06be\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u062f\u06cc\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 \u06a9\u0648\u0626\u06cc \u0648\u0632\u06cc\u0679\u0631 \u0635\u0641\u062d\u06c1 \u0644\u0648\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a Cloudflare \u067e\u06cc\u062c\u0632 \u062a\u06a9 \u067e\u06c1\u0646\u0686 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u060c \u062c\u0648 Astro \u0633\u0631\u0648\u0631\u0632 \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2\u06d4 Astro \u0645\u062a\u0639\u0644\u0642\u06c1 \u0645\u0648\u0627\u062f \u06a9\u0648 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0633\u06d2 REST API \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u06a9\u06be\u06cc\u0646\u0686\u062a\u0627 \u06c1\u06d2\u060c HTML \u0644\u06a9\u06be\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0648\u0632\u06cc\u0679\u0631 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0628\u06be\u06cc \u0628\u06be\u06cc \u0622\u067e \u06a9\u06d2 \u0648\u0632\u0679\u0631\u0632 \u06a9\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631\u0632 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0648\u0627\u062f \u06a9\u06d2 \u0627\u06cc\u0688\u06cc\u0679\u0631\u0632 \u0622\u067e \u06a9\u06d2 CMS \u0630\u06cc\u0644\u06cc \u0688\u0648\u0645\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0627\u06cc\u0688\u0645\u0646 \u0645\u06cc\u06ba \u0644\u0627\u06af \u0627\u0646 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0645\u0639\u0645\u0648\u0644 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0645\u0648\u0627\u062f \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c \u0634\u0627\u0626\u0639 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646 \u06a9\u0627 \u0646\u0638\u0645 \u06a9\u0631\u06cc\u06ba\u06d4 \u062c\u0633 \u0644\u0645\u062d\u06d2 \u0622\u067e \u0634\u0627\u0626\u0639 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0622\u067e \u06a9\u0627 \u0645\u0648\u0627\u062f \u0644\u0627\u0626\u06cc\u0648 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0686\u0648\u0646\u06a9\u06c1 Astro \u06c1\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0646\u06cc\u0627 \u0688\u06cc\u0679\u0627 \u0644\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0627 \u06a9\u0648\u0626\u06cc \u0645\u0631\u062d\u0644\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>REST API \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0648\u0631\u0698\u0646 4.7 \u06a9\u06d2 \u0628\u0639\u062f \u0633\u06d2 \u0628\u0644\u0679 \u0627\u0646 \u06c1\u06d2\u06d4 \u06a9\u0648\u0626\u06cc \u06af\u0631\u0627\u0641 \u06a9\u06cc\u0648 \u0627\u06cc\u0644 \u067e\u0644\u06af \u0627\u0646\u060c \u0627\u062f\u0627 \u0634\u062f\u06c1 \u06c1\u06cc\u0688 \u0644\u06cc\u0633 CMS \u0633\u0631\u0648\u0633\u0632\u060c \u06cc\u0627 \u0627\u0636\u0627\u0641\u06cc \u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-why-astro\">\u0627\u06cc\u0633\u0679\u0631\u0648 \u06a9\u06cc\u0648\u06ba\u061f<\/h2>\n<p>\u0622\u067e \u06cc\u06c1\u0627\u06ba Next.js\u060c Nuxt \u06cc\u0627 SvelteKit \u0628\u06be\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u0633\u0679\u0631\u0648 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u06cc\u0627 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633 \u06a9\u06d2 \u0688\u06cc\u0641\u0627\u0644\u0679\u0633 \u0627\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0645\u0639\u0627\u0645\u0644\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>Astro \u0627\u067e\u0646\u06d2 \u0627\u062c\u0632\u0627\u0621 \u06a9\u0648 \u0633\u0627\u062f\u06c1 HTML \u0645\u06cc\u06ba \u0645\u0631\u062a\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u067e\u06cc\u0634 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0644\u0627\u0626\u0646\u0679 \u0633\u0627\u0626\u0688 JavaScript \u0635\u0631\u0641 \u0627\u0633 \u062c\u06af\u06c1 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u0627\u0633 \u06a9\u06cc \u0648\u0627\u0636\u062d \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06d4<\/p>\n<p>CMS \u067e\u0631 \u0645\u0628\u0646\u06cc \u0633\u0627\u0626\u0679\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u06a9\u0633\u06cc \u0686\u06cc\u0632 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u0633 \u0627\u06cc\u0633 \u0622\u0631 \u0645\u0648\u0688 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0646 \u0679\u0627\u0626\u0645 \u06a9\u06d2 \u0648\u0642\u062a \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0633\u06d2 \u0646\u06cc\u0627 \u0688\u06cc\u0679\u0627 \u06a9\u06be\u06cc\u0646\u0686\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0645\u0648\u0627\u062f \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 Cloudflare \u06a9\u06d2 \u067e\u0627\u0633 \u0628\u0644\u0688 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0622\u0641\u06cc\u0634\u0644 \u0627\u0688\u0627\u067e\u0679\u0631 \u06c1\u06d2\u06d4 Tailwind v4 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u06d2 Vite \u067e\u0644\u06af \u0627\u0646 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0636\u0645 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1 \u06c1\u0648\u062a\u06cc \u062a\u0648 \u0645\u06cc\u06ba \u067e\u06d2 \u0644\u0648\u0688 CMS \u06a9\u06d2 \u0633\u0627\u062a\u06be Next.js \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627\u06d4 \u067e\u06d2 \u0644\u0648\u0688 \u0627\u0633\u06cc Next.js \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0627\u0646\u062f\u0631 TypeScript \u0645\u06cc\u06ba \u0628\u0646\u0627\u06cc\u0627 \u06c1\u0648\u0627 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u06c1 CMS \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u0622\u067e \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u062f\u0646 \u0633\u06d2 \u0627\u067e\u0646\u06d2 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0627\u0633\u06a9\u06cc\u0645\u0627 \u067e\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0636\u0631\u0648\u0631\u062a \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u062a\u06be\u06cc \u0627\u0648\u0631 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 REST API \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c Astro \u0627\u06cc\u06a9 \u062a\u06cc\u0632 \u0627\u0648\u0631 \u0635\u0627\u0641 \u0633\u062a\u06be\u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-infrastructure-setup\">\u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631 \u0633\u06cc\u0679 \u0627\u067e<\/h2>\n<p>\u0645\u06cc\u0631\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06cc\u06c1 \u06c1\u06cc\u06ba: Namecheap \u0633\u06d2 \u0688\u0648\u0645\u06cc\u0646\u0632\u060c WordPress \u0646\u06d2 Hostinger \u0633\u06d2 \u0645\u0634\u062a\u0631\u06a9\u06c1 \u06c1\u0648\u0633\u0679\u0646\u06af\u060c \u0627\u0648\u0631 Google Workspace \u0627\u06cc \u0645\u06cc\u0644\u06d4 \u0646\u06cc\u0686\u06d2 \u062f\u06cc\u06d2 \u06af\u0626\u06d2 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 \u067e\u0631 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0686\u0627\u06c1\u06d2 cPanel \u06cc\u0627 hPanel \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u0634\u062a\u0631\u06a9\u06c1 \u06c1\u0648\u0633\u0679\u0646\u06af \u06c1\u0648\u060c Apache \u06cc\u0627 Nginx \u06a9\u06d2 \u0633\u0627\u062a\u06be VPS\u060c \u06cc\u0627 \u062e\u0648\u062f \u0646\u0638\u0645 \u06a9\u0631\u062f\u06c1 \u0633\u0631\u0648\u0631\u06d4<\/p>\n<h3 id=\"heading-step-1-move-dns-to-cloudflare\">\u0645\u0631\u062d\u0644\u06c1 1: \u0627\u067e\u0646\u06d2 DNS \u06a9\u0648 Cloudflare \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0688\u0648\u0645\u06cc\u0646 \u06a9\u06d2 \u0646\u06cc\u0645 \u0633\u0631\u0648\u0631\u0632 \u06a9\u0648 Cloudflare \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0645\u0641\u062a DDoS \u062a\u062d\u0641\u0638\u060c SSL\u060c \u0627\u0648\u0631 \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0688\u0648\u0645\u06cc\u0646 \u06a9\u0648 \u0622\u067e \u06a9\u06d2 Cloudflare \u0635\u0641\u062d\u0627\u062a \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0635\u0644\u0627\u062d\u06cc\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0633\u0648\u0626\u0686 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u062a\u0645\u0627\u0645 DNS \u0631\u06cc\u06a9\u0627\u0631\u0688\u0632 \u062f\u0631\u0633\u062a \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0645\u0646\u062a\u0642\u0644 \u06c1\u0648\u0626\u06d2 \u06c1\u06cc\u06ba\u060c \u0628\u0634\u0645\u0648\u0644 \u0622\u067e \u06a9\u06cc \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 A \u06cc\u0627 CNAME \u0631\u06cc\u06a9\u0627\u0631\u0688\u0632\u06d4 \u0627\u06cc \u0645\u06cc\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u067e\u0646\u06d2 \u0627\u06cc \u0645\u06cc\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u06a9\u06d2 \u0627\u06cc\u0688\u0645\u0646 \u067e\u06cc\u0646\u0644 \u0633\u06d2 MX\u060c SPF\u060c DKIM\u060c \u0627\u0648\u0631 DMARC \u0627\u0642\u062f\u0627\u0631 \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba \u067e\u06c1\u0644\u06d2 Cloudflare DNS \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0628\u0635\u0648\u0631\u062a \u062f\u06cc\u06af\u0631\u060c \u0622\u067e \u06a9\u06cc \u0627\u06cc \u0645\u06cc\u0644 \u067e\u0631\u0648\u067e\u06cc\u06af\u0646\u0688\u06d2 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0631\u06a9\u0627\u0648\u0679 \u0628\u0646 \u062c\u0627\u0626\u06d2 \u06af\u06cc\u06d4<\/p>\n<h3 id=\"heading-step-2-create-the-cms-subdomain\">\u0645\u0631\u062d\u0644\u06c1 2: \u0627\u06cc\u06a9 CMS \u0630\u06cc\u0644\u06cc \u0688\u0648\u0645\u06cc\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<p>\u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>cms.yourdomain.com<\/code> \u062a\u0648 \u0627\u06cc\u0633\u0679\u0631\u0648 \u06a9\u0627 \u0631\u0648\u0679 \u0688\u0648\u0645\u06cc\u0646 \u0645\u0641\u062a \u06c1\u06d2\u06d4 Cloudflare DNS \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u0646\u0627 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>cms<\/code> \u0633\u0631\u0648\u0631 IP \u0633\u06d2\u060c \u06cc\u0627 CNAME \u0633\u06d2 \u0627\u06af\u0631 \u0645\u06cc\u0632\u0628\u0627\u0646 CDN \u0645\u06cc\u0632\u0628\u0627\u0646 \u0646\u0627\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06be\u0631 \u0627\u0633\u06cc \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u067e\u0646\u06d2 \u06c1\u0648\u0633\u0679\u0646\u06af \u067e\u06cc\u0646\u0644 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0630\u06cc\u0644\u06cc \u0688\u0648\u0645\u06cc\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0686\u06cc\u0632 \u062c\u0648 \u0644\u0648\u06af \u06cc\u0627\u062f \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba: Cloudflare \u0627\u0648\u0631 \u0622\u067e \u06a9\u06cc \u0627\u0635\u0644 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u06a9\u06d2 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0627\u067e\u0646\u06d2 SSL \u0633\u0631\u0679\u06cc\u0641\u06a9\u06cc\u0679 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 Cloudflare SSL \u06a9\u0648 \u06a9\u0646\u0627\u0631\u06d2 \u067e\u0631 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0627\u06af\u0631 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u0633\u0631\u0679\u06cc\u0641\u06a9\u06cc\u0679 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 525 \u06a9\u06cc \u062e\u0631\u0627\u0628\u06cc \u0645\u0644\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>Hostinger \u0627\u0633\u06d2 \u0646\u0626\u06d2 \u0630\u06cc\u0644\u06cc \u0688\u0648\u0645\u06cc\u0646\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0644\u0627\u06af\u0648 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 hPanel \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 cPanel \u06a9\u06d2 \u0644\u06cc\u06d2\u060c Let&#8217;s Encrypt \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 VPS \u06a9\u06d2 \u0644\u06cc\u06d2\u060c Certbot \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0631\u0648\u0679 \u0688\u0648\u0645\u06cc\u0646 \u0633\u06d2 \u06c1\u0679\u0627\u0646\u06d2 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2: <code>\/wp-admin<\/code> \u0686\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0627\u0628 \u0622\u067e \u06a9\u06d2 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0688\u0648\u0645\u06cc\u0646 \u067e\u0631 \u0645\u0648\u062c\u0648\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u06cc \u0646\u0645\u0627\u0626\u0634 \u06a9\u0645 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u06cc\u06d4 \u0644\u06cc\u06a9\u0646 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0644\u0627\u06af \u0627\u0646 \u06a9\u0627 \u0631\u0627\u0633\u062a\u06c1 \u0627\u0628 \u0628\u06be\u06cc \u06c1\u06d2\u06d4 <code>\/wp-admin<\/code> \u0630\u06cc\u0644\u06cc \u0688\u0648\u0645\u06cc\u0646 \u0645\u06cc\u06ba\u06d4 \u06cc\u06c1 \u067e\u06c1\u0644\u06cc \u0686\u06cc\u0632 \u06c1\u06d2 \u062c\u0633\u06d2 \u0622\u067e \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u0627\u0633 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u0632\u06cc\u062f \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u062e\u0631 \u0645\u06cc\u06ba \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0686\u06be\u0627 \u0633\u06cc\u06a9\u0634\u0646 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-wordpress-configuration\">\u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646<\/h2>\n<h3 id=\"heading-tell-wordpress-it-lives-on-the-subdomain\">\u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0628\u062a\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u0633\u0628 \u0688\u0648\u0645\u06cc\u0646 \u067e\u0631 \u06c1\u06cc\u06ba\u06d4<\/h3>\n<p>\u0645\u06cc\u06ba <code>wp-config.php<\/code>&quot;\u06cc\u06c1 \u0628\u0627\u062a \u06c1\u06d2\u060c \u062a\u0631\u0645\u06cc\u0645 \u0628\u0646\u062f \u06a9\u0631\u0648!&#8221; \u062a\u0628\u0635\u0631\u06c1:<\/p>\n<pre><code class=\"language-php\">define('WP_HOME',    'https:\/\/cms.yourdomain.com');\ndefine('WP_SITEURL', 'https:\/\/cms.yourdomain.com');\n<\/code><\/pre>\n<p>\u0645\u0648\u062c\u0648\u062f\u06c1 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0627\u06cc\u0688\u0645\u0646 \u06cc\u06c1\u0627\u06ba \u0648\u0627\u0642\u0639 \u06c1\u06d2: <code>cms.yourdomain.com\/wp-admin<\/code>. \u0631\u0648\u0679 \u0688\u0648\u0645\u06cc\u0646 \u06a9\u06d2 \u067e\u0631\u0627\u0646\u06d2 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u0627 \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-must-use-plugin-redirect-and-preview\">\u067e\u0644\u06af \u0627\u0646 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0636\u0631\u0648\u0631 \u06a9\u0631\u06cc\u06ba: \u0631\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679 \u0627\u0648\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1<\/h3>\n<p>\u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0645\u06cc\u06ba \u062f\u0631\u062c \u0630\u06cc\u0644 \u0641\u0648\u0644\u0688\u0631\u0632 \u06c1\u06cc\u06ba: <code>mu-plugins<\/code> \u0627\u0646\u062f\u0631 <code>wp-content<\/code>. \u06cc\u06c1\u0627\u06ba \u0631\u06a9\u06be\u06cc \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u067e\u0644\u06af \u0627\u0646 \u0633\u0645\u062c\u06be\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u06d4 \u0648\u06c1 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u067e\u0644\u06af \u0627\u0646 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0631 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0644\u0648\u0688 \u06c1\u0648 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0646\u062a\u0638\u0645 UI \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0627\u0646\u06c1\u06cc\u06ba \u0641\u0639\u0627\u0644 \u06cc\u0627 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u06a9\u0648\u0626\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0627\u0686\u06be\u06cc \u062c\u06af\u06c1 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u062d\u0627\u062f\u062b\u0627\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0628\u0646\u062f \u0646\u06c1 \u06c1\u0648 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<p>\u0628\u0646\u0627\u0646\u0627 <code>wp-content\/mu-plugins\/headless-redirect.php<\/code>:<\/p>\n<pre><code class=\"language-php\"><?php \/*\nPlugin Name: Headless Redirect\nDescription: Redirects frontend visitors to the Astro site and rewires the WordPress preview link.\n*\/\n\nadd_action('template_redirect', function() {\n    if (is_user_logged_in()) return;\n    if ($_SERVER['HTTP_HOST'] === 'cms.yourdomain.com') {\n        wp_redirect('https:\/\/yourdomain.com', 302);\n        exit;\n    }\n});\n\nadd_filter('preview_post_link', function((link, )post) {\n    $token = HEADLESS_PREVIEW_SECRET;\n    (type  = )post-????>post_type;\n    return 'https:\/\/yourdomain.com\/preview?type=\" . (type . \"&id=' . )post->ID . '&token=' . $token;\n}, 10, 2);\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>template_redirect<\/code> \u06a9\u0627\u0645 \u0627\u0633 \u0648\u0642\u062a \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0648\u0632\u06cc\u0679\u0631 \u0644\u0627\u06af \u0627\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u0627\u0648\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a CMS \u0630\u06cc\u0644\u06cc \u0688\u0648\u0645\u06cc\u0646 \u067e\u0631 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u0633\u06d2 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u067e\u0631 \u0628\u06be\u06cc\u062c \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 \u0644\u0627\u06af \u0627\u0646 \u0627\u06cc\u0688\u06cc\u0679\u0631\u0632 \u06a9\u0648 \u062d\u0633\u0628 \u0645\u0639\u0645\u0648\u0644 \u0627\u06cc\u0688\u0645\u0646\u0633\u0679\u0631\u06cc\u0679\u0631 \u06a9\u0648 \u0628\u06be\u06cc\u062c \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 REST API \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627 \u06c1\u062f\u0641 <code>\/wp-json\/...<\/code> \u067e\u0627\u0633 \u0646\u06c1 \u06a9\u0631\u0648 <code>template_redirect<\/code> \u06cc\u06c1 \u0628\u0627\u0644\u06a9\u0644 \u0645\u062a\u0627\u062b\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>preview_post_link<\/code> \u0641\u0644\u0679\u0631\u0632 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u062c\u0628 \u06a9\u0648\u0626\u06cc \u0627\u06cc\u0688\u06cc\u0679\u0631 \u06a9\u0633\u06cc \u0688\u0631\u0627\u0641\u0679 \u067e\u0648\u0633\u0679 \u067e\u0631 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u06a9\u06cc\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0637\u0648\u0631 \u067e\u0631\u060c \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0627\u067e\u0646\u06cc \u062a\u06be\u06cc\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633\u06d2 \u0628\u063a\u06cc\u0631 \u06c1\u06cc\u0688 \u0644\u06cc\u0633 \u0633\u06cc\u0679\u0646\u06af\u0632 \u0645\u06cc\u06ba \u062e\u0627\u0644\u06cc \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0641\u0644\u0679\u0631 \u0627\u0633 \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u06a9\u0648 \u0627\u06cc\u0633\u0679\u0631\u0648 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0633\u06d2 \u0628\u062f\u0644 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 <code>\/preview<\/code> \u0635\u0641\u062d\u06c1 \u067e\u0648\u0633\u0679 ID\u060c \u067e\u0648\u0633\u0679 \u06a9\u06cc \u0642\u0633\u0645\u060c \u0627\u0648\u0631 \u062e\u0641\u06cc\u06c1 \u0679\u0648\u06a9\u0646 \u067e\u0627\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u0633\u0679\u0631\u0648 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0635\u0641\u062d\u06c1 \u0622\u067e \u06a9\u06d2 \u0688\u0631\u0627\u0641\u0679 \u06a9\u0648 REST API \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0646 \u0627\u0642\u062f\u0627\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0628\u0627\u0644\u06a9\u0644 \u0648\u06cc\u0633\u0627 \u06c1\u06cc \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u06cc\u06c1 \u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-clean-up-plugins\">\u067e\u0644\u06af \u0627\u0646 \u06a9\u06cc \u0635\u0641\u0627\u0626\u06cc<\/h3>\n<p>\u0627\u0628 \u0648\u0642\u062a \u0622\u06af\u06cc\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0686\u06cc\u0632 \u06a9\u0648 \u06c1\u0679\u0627 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u062c\u0648 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u06a9\u0648 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u0635\u0641\u062d\u06c1 \u0628\u0646\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2\u060c \u06a9\u06cc\u0634\u0646\u06af \u067e\u0644\u06af \u0627\u0646\u060c \u06c1\u0648\u0633\u0679\u0646\u06af \u0622\u0646 \u0628\u0648\u0631\u0688\u0646\u06af \u067e\u0644\u06af \u0627\u0646 \u0648\u063a\u06cc\u0631\u06c1\u06d4<\/p>\n<p>\u0644\u06cc\u06a9\u0646 \u0622\u067e Akismet\u060c Wordfence\u060c \u0627\u0648\u0631 Yoast SEO \u06a9\u0648 \u0631\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06ba \u06af\u06d2\u06d4 Yoast \u0627\u06cc\u0633 \u0627\u06cc \u0627\u0648 \u0645\u06cc\u0679\u0627 \u0627\u0648\u0631 \u0627\u0648\u067e\u0646 \u06af\u0631\u0627\u0641 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a REST API \u062c\u0648\u0627\u0628\u0627\u062a \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 Astro \u0635\u0641\u062d\u0627\u062a \u067e\u0691\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>post.yoast_head_json<\/code>.<\/p>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u06cc\u06c1 \u0627\u06cc\u06a9\u0679\u0648 \u062a\u06be\u06cc\u0645 \u06a9\u0648 \u06c1\u0644\u06a9\u06d2 \u0648\u0632\u0646 \u06a9\u06d2 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0645\u06cc\u06ba \u0628\u062f\u0644 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0627\u06cc\u06a9 \u0641\u0639\u0627\u0644 \u0627\u06a9\u0627\u0624\u0646\u0679 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u0627\u0633\u06d2 \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u0627\u06d4<\/p>\n<h2 id=\"heading-the-astro-frontend\">\u0627\u06cc\u0633\u0679\u0631\u0648 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688<\/h2>\n<p>\u0633\u06d2 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4 <code>pnpm create astro@latest<\/code>Cloudflare \u0627\u0688\u0627\u067e\u0679\u0631 \u0627\u0648\u0631 Tailwind \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">pnpm add @astrojs\/cloudflare\npnpm add -D @tailwindcss\/vite tailwindcss\n<\/code><\/pre>\n<h3 id=\"heading-astroconfigmjs\">astro.config.mjs<\/h3>\n<pre><code class=\"language-js\">import { defineConfig } from 'astro\/config'\nimport cloudflare from '@astrojs\/cloudflare'\nimport tailwindcss from '@tailwindcss\/vite'\n\nexport default defineConfig({\n  output: 'server',\n  adapter: cloudflare({ imageService: 'passthrough' }),\n  vite: { plugins: [tailwindcss()] },\n})\n<\/code><\/pre>\n<p><code>output: 'server'<\/code>    Astro \u06a9\u0648 \u0645\u06a9\u0645\u0644 SSR \u0645\u0648\u0688 \u0645\u06cc\u06ba \u0688\u0627\u0644\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u060c \u0627\u06cc\u0633\u0679\u0631\u0648 \u0627\u0633 \u0637\u0631\u062d \u06a9\u06d2 \u0645\u062a\u062d\u0631\u06a9 \u0631\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u062a\u0648\u0691\u062a\u06d2 \u06c1\u0648\u0626\u06d2\u060c \u062a\u0639\u0645\u06cc\u0631\u0627\u062a\u06cc \u0648\u0642\u062a \u067e\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0631\u06cc\u0646\u0688\u0631 \u06a9\u0631\u06d2 \u06af\u0627: <code>\/blog\/[slug]<\/code> \u06cc\u06c1 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0645\u0648\u0627\u062f \u067e\u0631 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u06d2 \u0648\u0642\u062a \u0645\u0648\u062c\u0648\u062f \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u06d4<\/p>\n<p><code>imageService: 'passthrough'<\/code>    Cloudflare \u06a9\u0627\u0631\u06a9\u0646\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4 \u0627\u06cc\u0633\u0679\u0631\u0648 \u06a9\u06cc \u0688\u06cc\u0641\u0627\u0644\u0679 \u0627\u0645\u06cc\u062c \u0633\u0631\u0648\u0633 \u0634\u0627\u0631\u067e \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>child_process<\/code> \u0627\u0648\u0631 <code>fs<\/code>. \u06cc\u06c1 Node.js \u0645\u0642\u0627\u0645\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a Cloudflare \u0648\u0631\u06a9\u0631\u0632 \u06a9\u06d2 \u0631\u0646 \u0679\u0627\u0626\u0645 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06cc \u062e\u0631\u0627\u0628\u06cc \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u067e\u0627\u0633 \u062a\u06be\u0631\u0648 \u0641\u0639\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u067e\u0631\u060c \u0627\u0645\u06cc\u062c \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u06a9\u0648 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0686\u06be\u0648\u0691 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0645\u0639\u06cc\u0627\u0631\u06cc \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u067e\u06cc\u0634 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code><img\/><\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0627\u0646\u06c1\u06cc\u06ba \u0679\u06cc\u06af \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-env\">env<\/h3>\n<pre><code class=\"language-bash\">WORDPRESS_API_URL=https:\/\/cms.yourdomain.com\n<\/code><\/pre>\n<p>\u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0627\u0633\u06cc \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0648 \u0627\u067e\u0646\u06d2 Cloudflare Pages \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0645\u06cc\u06ba Environment Variables \u06a9\u06d2 \u062a\u062d\u062a \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-srclibwordpressjs\">src\/lib\/wordpress.js<\/h3>\n<p>\u06cc\u06c1 \u0641\u0627\u0626\u0644 \u0648\u0627\u062d\u062f \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0633\u06d2 \u062a\u0645\u0627\u0645 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 API \u06a9\u0627\u0644\u0632 \u06af\u0632\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u0648 \u0633\u0646\u0679\u0631\u0644\u0627\u0626\u0632 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u062c\u0628 API URL \u06cc\u0627 \u062a\u0648\u062b\u06cc\u0642 \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u062a\u0648 \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u0627\u06d4<\/p>\n<p>\u06a9\u06c1 <code>_embed<\/code> \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u0627\u06c1\u0645 \u06c1\u06cc\u06ba\u06d4 \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679\u060c \u067e\u0648\u0633\u0679 \u06a9\u06d2 \u062c\u0648\u0627\u0628\u0627\u062a \u0645\u06cc\u06ba \u0635\u0631\u0641 \u067e\u0648\u0633\u0679 \u0688\u06cc\u0679\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0646\u0645\u0627\u06cc\u0627\u06ba \u062a\u0635\u0648\u06cc\u0631\u060c \u0645\u0635\u0646\u0641 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644\u0627\u062a\u060c \u0627\u0648\u0631 \u0632\u0645\u0631\u06d2 \u0645\u0646\u0641\u0631\u062f IDs \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0644\u06af \u0627\u0644\u06af \u0622\u0626\u0679\u0645\u0632 \u06c1\u06cc\u06ba\u06d4 \u0628\u063a\u06cc\u0631 <code>_embed<\/code>\u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0627\u0636\u0627\u0641\u06cc API \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u06cc\u06c1 \u06cc\u0642\u06cc\u0646\u06cc \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u0627 \u06a9\u06c1 \u062a\u0645\u0627\u0645 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0688\u06cc\u0679\u0627 \u0627\u06cc\u06a9 \u06c1\u06cc \u062c\u0648\u0627\u0628 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<p><code>cache: 'no-store'<\/code>    \u06cc\u06c1 \u062a\u0645\u0627\u0645 \u062f\u0631\u0622\u0645\u062f\u06cc \u06a9\u0627\u0644\u0648\u06ba \u067e\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 Cloudflare \u0648\u0631\u06a9\u0631\u0632 HTTP \u0633\u06d2 \u0627\u0644\u06af\u060c \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u06a9 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u06cc\u0634 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>Cache-Control<\/code> \u06c1\u06cc\u0688\u0631 \u0627\u0633\u06d2 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631\u060c Cloudflare \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 API \u06a9\u06d2 \u062c\u0648\u0627\u0628\u0627\u062a \u06a9\u0648 \u06a9\u0646\u0627\u0631\u06d2 \u067e\u0631 \u06a9\u06cc\u0634 \u06a9\u0631\u06d2 \u06af\u0627\u06d4 \u0627\u06cc\u0688\u06cc\u0679\u0631\u0632 \u0627\u06cc\u06a9 \u067e\u0648\u0633\u0679 \u0634\u0627\u0626\u0639 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u067e\u0631 \u067e\u0686\u06be\u0644\u0627 \u0648\u0631\u0698\u0646 \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06a9\u06cc\u0634\u0688 \u062c\u0648\u0627\u0628 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-js\">const WP_URL = import.meta.env.WORDPRESS_API_URL\n\nconst fetchWP = (path) =>\n  fetch(`({WP_URL}){path}`, { cache: 'no-store' }).then((r) => r.json())\n\nexport const getPosts = (page = 1, perPage = 10) =>\n  fetchWP(`\/wp-json\/wp\/v2\/posts?_embed&per_page=({perPage}&page=){page}`)\n\nexport const getPostBySlug = async (slug) => {\n  const posts = await fetchWP(`\/wp-json\/wp\/v2\/posts?_embed&slug=${slug}`)\n  return posts[0]\n}\n\nexport const getCategories = () =>\n  fetchWP(`\/wp-json\/wp\/v2\/categories`)\n\nexport const getPostsByCategory = (categoryId, page = 1) =>\n  fetchWP(`\/wp-json\/wp\/v2\/posts?_embed&categories=({categoryId}&page=){page}`)\n\nexport const getAllPostsForSitemap = () =>\n  fetchWP(`\/wp-json\/wp\/v2\/posts?_fields=slug,modified&per_page=100`)\n<\/code><\/pre>\n<p>\u0633\u0627\u0626\u0679 \u0645\u06cc\u067e \u06a9\u06cc \u062e\u0635\u0648\u0635\u06cc\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>_fields<\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 <code>_embed<\/code> \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u06c1\u0644\u06a9\u0627 \u0631\u06a9\u06be\u06cc\u06ba \u0627\u0648\u0631 \u0635\u0631\u0641 \u0648\u06c1\u06cc \u0641\u06cc\u0644\u0688\u0632 \u0644\u0627\u0626\u06cc\u06ba \u062c\u0646 \u06a9\u06cc \u0622\u067e \u06a9\u0648 \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-srcmiddlewarejs\">src\/middleware.js<\/h3>\n<p>\u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u0635\u0641\u062d\u06c1 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0636\u0627\u0641\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>Cache-Control: no-store<\/code> Cloudflare \u06a9\u0648 \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 HTML \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u06a9\u06cc\u0634 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0645\u0627\u0645 SSR \u062c\u0648\u0627\u0628\u0627\u062a \u067e\u0631 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-js\">export function onRequest(_context, next) {\n  return next().then(response => {\n    const newResponse = new Response(response.body, response)\n    newResponse.headers.set('Cache-Control', 'no-store, no-cache, must-revalidate')\n    newResponse.headers.set('CDN-Cache-Control', 'no-store')\n    return newResponse\n  })\n}\n<\/code><\/pre>\n<p>\u0627\u06cc\u0633\u0679\u0631\u0648 \u06a9\u06d2 \u0627\u0635\u0644 \u062c\u0648\u0627\u0628 \u0645\u06cc\u06ba \u0646\u0627\u0642\u0627\u0628\u0644 \u062a\u063a\u06cc\u0631 \u06c1\u06cc\u0688\u0631 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0627\u0633\u06d2 \u0646\u06c1\u06cc\u06ba \u06a9\u06c1\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627\u06d4 <code>.headers.set()<\/code> \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0627\u0633 \u067e\u0631\u06d4 \u0627\u06cc\u06a9 \u062d\u0644 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0635\u0644 \u0628\u0627\u0688\u06cc \u0627\u0648\u0631 \u062c\u0648\u0627\u0628 \u06a9\u0648 \u0628\u0637\u0648\u0631 init \u0622\u0631\u06af\u06cc\u0648\u0645\u0646\u0679 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9 \u0646\u06cc\u0627 \u062c\u0648\u0627\u0628 \u062a\u06cc\u0627\u0631 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4 \u0686\u0648\u0646\u06a9\u06c1 \u0646\u0626\u06d2 \u062c\u0648\u0627\u0628 \u0645\u06cc\u06ba \u062a\u063a\u06cc\u0631 \u067e\u0630\u06cc\u0631 \u06c1\u06cc\u0688\u0631 \u06c1\u06cc\u06ba\u060c <code>.set()<\/code> \u0641\u06cc\u06a9\u0679\u0631\u06cc <code>CDN-Cache-Control<\/code> Cloudflare \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062e\u0635\u0648\u0635 \u06c1\u06cc\u0688\u0631 \u062c\u0648 \u0645\u0639\u06cc\u0627\u0631\u0627\u062a \u0633\u06d2 \u0622\u0632\u0627\u062f\u0627\u0646\u06c1 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0646\u0627\u0631\u06d2 \u067e\u0631 \u06a9\u06cc\u0634\u0646\u06af \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>Cache-Control<\/code> \u06c1\u06cc\u0688\u0631<\/p>\n<h3 id=\"heading-srclayoutslayoutastro\">src\/layouts\/Layout.astro<\/h3>\n<p>\u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0627\u062a \u0627\u0633 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 HTML \u0688\u06be\u0627\u0646\u0686\u06c1\u060c \u0645\u06cc\u0679\u0627 \u0679\u06cc\u06af\u0632\u060c \u0627\u0648\u0631 \u0639\u0627\u0644\u0645\u06cc \u062f\u0631\u0622\u0645\u062f\u0627\u062a \u06cc\u06c1\u0627\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba \u0644\u06c1\u0630\u0627 \u0622\u067e \u06a9\u0648 \u0627\u0646\u06c1\u06cc\u06ba \u06c1\u0631 \u0635\u0641\u062d\u06c1 \u067e\u0631 \u062f\u06c1\u0631\u0627\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-astro\">---\ninterface Props {\n  title: string\n  description?: string\n}\nconst { title, description = '' } = Astro.props\n---\n\n\n  \n    <meta charset=\"UTF-8\"\/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n    <title>{title}<\/title>\n    <meta name=\"description\" content=\"{description}\"\/>\n  \n  \n    <slot name=\"nav\"\/>\n    <main id=\"main-content\"><slot\/><\/main>\n    <slot name=\"footer\"\/>\n  \n\n<\/code><\/pre>\n<p>\u0646\u0627\u0645\u0632\u062f \u0633\u0644\u0627\u0679\u0633 \u0622\u067e \u06a9\u0648 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u0628\u0627\u0631 \u0627\u0648\u0631 \u0641\u0648\u0679\u0631 \u06a9\u0648 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u067e\u0648\u0632\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code><main\/><\/code>\u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0646\u0627\u0633\u0628 HTML \u062a\u0627\u0631\u06cc\u062e\u06cc \u0688\u06be\u0627\u0646\u0686\u06c1 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-srcpagesblogindexastro\">src\/page\/blog\/index.astro<\/h3>\n<pre><code class=\"language-astro\">---\nimport Layout from '..\/..\/layouts\/Layout.astro'\nimport { getPosts, getCategories, getPostsByCategory } from '..\/..\/lib\/wordpress'\n\nconst page = Number(Astro.url.searchParams.get('page') ?? 1)\nconst categoryId = Astro.url.searchParams.get('category')\n\nconst [posts, categories] = await Promise.all([\n  categoryId ? getPostsByCategory(categoryId, page) : getPosts(page, 10),\n  getCategories(),\n])\n---\n<layout title=\"\u0628\u0644\u0627\u06af\">\n  <nav>\n    All\n    {categories.map((cat) => (\n      {cat.name}\n    ))}\n  <\/nav>\n\n  <ul>\n    {posts.map((post) => {\n      const image   = post._embedded?.['wp:featuredmedia']?.[0]?.source_url\n      const imageAlt = post._embedded?.['wp:featuredmedia']?.[0]?.alt_text ?? ''\n      return (\n        <li>\n          {image && <img decoding=\"async\" src=\"{image}\" alt=\"{imageAlt}\" title=\"\">}\n          \n          \n        <\/li>\n      )\n    })}\n  <\/ul>\n\n  {page > 1 && Previous}\n  Next\n<\/layout>\n<\/code><\/pre>\n<p><code>Promise.all<\/code>    \u0627\u06cc\u06a9 \u06c1\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba \u067e\u0648\u0633\u0679\u0633 \u0627\u0648\u0631 \u0632\u0645\u0631\u06d2 \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u06cc\u06ba\u06d4 \u0632\u0645\u0631\u06c1 \u06a9\u0627 \u0641\u0644\u0679\u0631 URL \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06d2 \u0633\u0679\u0631\u0646\u06af \u0633\u06d2 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u0627\u06cc\u06a9 \u06c1\u06cc \u0635\u0641\u062d\u06c1 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 <code>\/blog<\/code> \u0627\u0648\u0631 <code>\/blog?category=5<\/code> \u0639\u0644\u06cc\u062d\u062f\u06c1 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u06d4<\/p>\n<p>\u0646\u0645\u0627\u06cc\u0627\u06ba \u062a\u0635\u0627\u0648\u06cc\u0631 \u0627\u0646\u062f\u0631 \u0622\u0648\u06cc\u0632\u0627\u06ba \u06c1\u06cc\u06ba\u06d4 <code>post._embedded['wp:featuredmedia'][0]<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>_embed<\/code> \u067e\u0648\u0633\u0679 \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u0645\u06cc\u06ba \u0645\u06cc\u0688\u06cc\u0627 \u0627\u0639\u062a\u0631\u0627\u0636 \u06a9\u0648 \u0627\u0646 \u0644\u0627\u0626\u0646 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-srcpagesblogslugastro\">\u0645\u0627\u062e\u0630\/\u0635\u0641\u062d\u06c1\/\u0628\u0644\u0627\u06af\/[slug]astro<\/h3>\n<pre><code class=\"language-astro\">---\nimport Layout from '..\/..\/layouts\/Layout.astro'\nimport { getPostBySlug } from '..\/..\/lib\/wordpress'\n\nconst { slug } = Astro.params\nconst post = await getPostBySlug(slug)\nif (!post) return Astro.redirect('\/404')\n\nconst image    = post._embedded?.['wp:featuredmedia']?.[0]?.source_url\nconst imageAlt = post._embedded?.['wp:featuredmedia']?.[0]?.alt_text ?? ''\nconst author   = post._embedded?.author?.[0]?.name\nconst seoTitle = post.yoast_head_json?.title ?? post.title.rendered\nconst seoDesc  = post.yoast_head_json?.og_description ?? ''\n---\n<layout title=\"{\u0639\u0646\u0648\u0627\u0646}\" description=\"{seoDesc}\" wp_automatic_readability=\"1\">\n  <article wp_automatic_readability=\"2\">\n    \n    <p>{author} \u00b7 {new Date(post.date).toLocaleDateString()}<\/p>\n    {image && <img decoding=\"async\" src=\"{image}\" alt=\"{imageAlt}\" title=\"\">}\n    \n  <\/article>\n<\/layout>\n<\/code><\/pre>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>set:html<\/code> \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 <code>{post.content.rendered}<\/code>. Astro \u0645\u0646\u062d\u0646\u06cc \u062e\u0637\u0648\u0637 \u0648\u062d\u062f\u0627\u0646\u06cc \u06a9\u06d2 \u062a\u0627\u062b\u0631\u0627\u062a \u06a9\u0648 \u0645\u062a\u0646 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0627\u0646\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 HTML \u0627\u0646 \u0633\u06d2 \u0628\u0686 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0622\u067e \u06a9\u0648 \u067e\u06cc\u0634 \u06a9\u0631\u062f\u06c1 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0635\u0641\u062d\u06c1 \u067e\u0631 \u062e\u0627\u0645 \u0679\u06cc\u06af\u0632 \u067e\u0631\u0646\u0679 \u06c1\u0648\u062a\u06d2 \u0646\u0638\u0631 \u0622\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06c1\u0645\u06cc\u0634\u06c1 \u0686\u0648\u06a9\u0646\u0627 \u0631\u06c1\u0648 <code>if (!post) return Astro.redirect('\/404')<\/code>. \u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u063a\u06cc\u0631 \u0645\u0648\u062c\u0648\u062f \u0633\u0644\u06af \u06a9\u0627 \u062f\u0648\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 API \u0627\u06cc\u06a9 \u062e\u0627\u0644\u06cc \u0635\u0641 \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0633\u06cc\u06a9\u06cc\u0648\u0631\u0679\u06cc \u06af\u0627\u0631\u0688\u0632 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u062c\u0627\u0626\u06cc\u062f\u0627\u062f \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc <code>undefined<\/code> \u06cc\u06c1 Cloudflare \u0648\u0631\u06a9\u0631 \u06a9\u0648 \u06a9\u0631\u06cc\u0634 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 500 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u063a\u0644\u0637\u06cc \u067e\u06be\u06cc\u0646\u06a9 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><code>post.yoast_head_json<\/code>    \u0627\u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 Yoast SEO \u06a9\u0627 \u0641\u0639\u0627\u0644 \u06c1\u0648\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u0645\u06cc\u06ba \u062d\u0633\u0627\u0628\u06cc SEO \u0639\u0646\u0648\u0627\u0646\u0627\u062a \u0627\u0648\u0631 Yoast \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u062a\u0641\u0635\u06cc\u0644 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u0627 \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc SEO \u06a9\u0627\u0645 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0627\u06cc\u0633\u0679\u0631\u0648 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u067e\u0631 \u0645\u0646\u062a\u0642\u0644 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<h3 id=\"heading-srcpagessitemapxmlts\">src\/pages\/sitemap.xml.ts<\/h3>\n<pre><code class=\"language-ts\">import type { APIRoute } from 'astro'\nimport { getAllPostsForSitemap } from '..\/lib\/wordpress'\n\nexport const GET: APIRoute = async () => {\n  const posts = await getAllPostsForSitemap()\n\n  const urls = [\n    { loc: 'https:\/\/yourdomain.com\/', lastmod: new Date().toISOString() },\n    { loc: 'https:\/\/yourdomain.com\/blog\/', lastmod: new Date().toISOString() },\n    ...posts.map((p) => ({\n      loc: `https:\/\/yourdomain.com\/blog\/${p.slug}\/`,\n      lastmod: p.modified,\n    })),\n  ]\n\n  const xml = `<?xml version=\"1.0\" encoding=\"UTF-8\"?????>\n<urlset xmlns=\"http:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9\">\n({urls.map((u) => `  <url>n    <loc>){u.loc}<\/loc>n    <lastmod>${u.lastmod}<\/lastmod>n  <\/url>`).join('n')}\n<\/urlset>`\n\n  return new Response(xml, { headers: { 'Content-Type': 'application\/xml' } })\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u06c1\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0646\u06cc\u0627 XML \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u0627 \u0633\u0627\u0626\u0679 \u06a9\u0627 \u0646\u0642\u0634\u06c1 \u06c1\u0645\u06cc\u0634\u06c1 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0646\u0648 \u06a9\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0634\u0627\u0626\u0639 \u0634\u062f\u06c1 \u067e\u0648\u0633\u0679\u0633 \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<h3 id=\"heading-srcstylesglobalcss\">src\/styles\/global.css<\/h3>\n<pre><code class=\"language-css\">@import \"tailwindcss\";\n\n@theme {\n  --color-brand: #your-color;\n  --font-sans: 'Your Font', sans-serif;\n}\n<\/code><\/pre>\n<p>Tailwind v4 \u0627\u0633 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 CSS-\u067e\u06c1\u0644\u06cc \u0633\u0627\u062e\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>@theme<\/code> \u0628\u0644\u0627\u06a9 \u0633\u06cc \u0627\u06cc\u0633 \u0627\u06cc\u0633 \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0679\u06cc\u0644 \u0648\u0646\u0688 \u06cc\u0648\u0679\u06cc\u0644\u06cc\u0679\u06cc\u0632 \u0628\u0646 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>--color-brand<\/code> \u0628\u0646 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>bg-brand<\/code>\u060c <code>text-brand<\/code>\u0648\u063a\u06cc\u0631\u06c1 \u0646\u06c1\u06cc\u06ba <code>tailwind.config.js<\/code> \u0622\u067e \u06a9\u0648 \u0627\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-cicd-with-cloudflare-pages\">Cloudflare \u0635\u0641\u062d\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 CI\/CD<\/h2>\n<p>\u0627\u06cc\u0633\u0679\u0631\u0648 \u06a9\u0648\u0688 \u062a\u06cc\u0627\u0631 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0622\u062e\u0631\u06cc \u062d\u0635\u06c1 \u0627\u0633\u06d2 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 Cloudflare Pages \u0627\u06cc\u06a9 \u0639\u0644\u06cc\u062d\u062f\u06c1 \u067e\u0627\u0626\u067e \u0644\u0627\u0626\u0646 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2\u060c \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a GitHub \u0633\u06d2 \u062c\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0642\u062f\u0627\u0645\u0627\u062a \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06cc\u06ba:<\/p>\n<ol wp_automatic_readability=\"2.5\">\n<li wp_automatic_readability=\"-1\">\n<p>\u0627\u067e\u0646\u06d2 \u0630\u062e\u06cc\u0631\u06d2 \u06a9\u0648 GitHub \u067e\u0631 \u067e\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"1\">\n<p>\u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 Cloudflare \u067e\u06cc\u062c\u0632 \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0627\u067e\u0646\u06d2 GitHub \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u0633\u06d2 \u062c\u0648\u0691\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>\u0627\u067e\u0646\u06cc \u0628\u0644\u0688 \u06a9\u0645\u0627\u0646\u0688 \u06a9\u0648 \u0627\u0633 \u067e\u0631 \u0633\u06cc\u0679 \u06a9\u0631\u06cc\u06ba: <code>pnpm build<\/code> \u0627\u0648\u0631 \u0622\u0624\u0679 \u067e\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u06c1\u06d2\u06d4 <code>dist<\/code>.<\/p>\n<\/li>\n<li wp_automatic_readability=\"0\">\n<p>\u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u0645\u06cc\u06ba\u060c \u062f\u0631\u062c \u0630\u06cc\u0644 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba: <code>WORDPRESS_API_URL<\/code> \u0627\u0634\u0627\u0631\u06c1 \u06a9\u06cc\u0627 <code>https:\/\/cms.yourdomain.com<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u062a\u0642\u0633\u06cc\u0645<\/p>\n<\/li>\n<\/ol>\n<p>\u067e\u06c1\u0644\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0628\u0639\u062f\u060c \u062a\u0645\u0627\u0645 \u062f\u06be\u06a9\u0627 <code>main<\/code> \u062e\u0648\u062f\u06a9\u0627\u0631 \u0637\u0648\u0631 \u067e\u0631 \u0646\u0626\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc\u0648\u06ba \u06a9\u0648 \u0645\u062a\u062d\u0631\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4 \u062c\u0628 Cloudflare \u0627\u06cc\u06a9 \u062a\u0639\u0645\u06cc\u0631 \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0646\u06cc\u0627 \u0648\u0631\u0698\u0646 \u0686\u0646\u062f \u0645\u0646\u0679\u0648\u06ba \u0645\u06cc\u06ba \u0639\u0627\u0644\u0645\u06cc \u0633\u0637\u062d \u067e\u0631 \u062c\u0627\u0631\u06cc \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 Astro \u0645\u0627\u0646\u06af \u067e\u0631 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0633\u06d2 \u06a9\u06be\u06cc\u0646\u0686\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0633\u06d2 \u0645\u0648\u0627\u062f \u06a9\u06cc \u0627\u067e \u0688\u06cc\u0679\u0633 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0646\u0627\u0641\u0630 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u06a9\u0648\u0688 \u06a9\u0648 \u0622\u06af\u06d2 \u0628\u0691\u06be\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u0627\u0648\u0631 \u067e\u0648\u0633\u0679\u0633 \u0634\u0627\u0626\u0639 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u06cc\u0688\u06cc\u0679\u0631\u0632 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u062e\u0648\u062f \u0645\u062e\u062a\u0627\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u0627\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-final-thoughts\">\u062d\u062a\u0645\u06cc \u062e\u06cc\u0627\u0644\u0627\u062a<\/h2>\n<p>\u06cc\u06c1 \u0633\u06cc\u0679 \u0627\u067e \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0645\u0648\u0627\u062f \u0679\u06cc\u0645 \u06a9\u0648 \u0627\u06cc\u0633\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u06cc\u06a9 \u062e\u0627\u0635 \u0636\u0631\u0648\u0631\u062a \u062a\u06be\u06cc \u062c\u0648 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0645\u06cc\u06ba \u062a\u06be\u06cc\u06ba \u0627\u0648\u0631 \u0645\u06cc\u0632 \u067e\u0631 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e CMS \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0646\u0626\u06d2 \u0633\u0631\u06d2 \u0633\u06d2 \u0634\u0631\u0648\u0639\u0627\u062a \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0634\u0627\u06cc\u062f \u06cc\u06c1 \u0648\u06c1 \u0627\u0633\u0679\u06cc\u06a9 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 Next.js \u0627\u0648\u0631 Payload CMS \u062c\u06cc\u0633\u06cc \u06a9\u0648\u0626\u06cc \u0686\u06cc\u0632 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u062c\u06c1\u0627\u06ba \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0627\u0648\u0631 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u06a9\u0648 \u0632\u0645\u06cc\u0646 \u0633\u06d2 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0627\u06c1\u0645\u060c \u0627\u06af\u0631 \u0627\u06cc\u0633\u06cc \u0635\u0648\u0631\u062a \u062d\u0627\u0644 \u067e\u06cc\u062f\u0627 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0622\u067e \u06a9\u06d2 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0627\u06cc\u0688\u06cc\u0679\u0631\u0632 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0633\u06d2 \u0648\u0627\u0642\u0641 \u06c1\u0648\u06ba \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba \u0627\u067e\u0646\u06cc \u0645\u0631\u0636\u06cc \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648 \u062c\u0633\u06d2 \u0635\u0641\u062d\u06c1 \u0628\u0646\u0627\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0635\u0641\u0627\u0626\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0641\u0631\u0627\u06c1\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u0627\u060c \u062a\u0648 \u06cc\u06c1 \u0639\u0644\u06cc\u062d\u062f\u06af\u06cc \u0645\u0639\u0646\u06cc \u0631\u06a9\u06be\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u06cc\u0631\u0679:<\/p>\n<ul wp_automatic_readability=\"2.5\">\n<li wp_automatic_readability=\"0\">\n<p>\u0645\u0648\u0627\u062f \u06a9\u06d2 \u0627\u06cc\u0688\u06cc\u0679\u0631\u0632 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u0631\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06a9\u0648\u0626\u06cc \u062a\u0631\u0628\u06cc\u062a \u0646\u06c1\u06cc\u06ba\u060c \u06a9\u0648\u0626\u06cc \u06c1\u062c\u0631\u062a \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>\u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u0622\u067e \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u0627\u0648\u0631 \u0637\u0631\u0632 \u0639\u0645\u0644 \u067e\u0631 \u0645\u06a9\u0645\u0644 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0648\u0626\u06cc \u062a\u06be\u06cc\u0645 \u06cc\u0627 \u067e\u0644\u06af \u0627\u0646 \u067e\u0627\u0628\u0646\u062f\u06cc\u0627\u06ba \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>\u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06c1\u0631 \u062f\u06be\u06a9\u06d2 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0645\u0648\u0627\u062f \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631\u060c \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0646\u0627\u0641\u0630 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"1\">\n<p>\u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0633\u0627\u0626\u0679\u0633 \u067e\u0631 \u06a9\u0648\u0626\u06cc \u0627\u0636\u0627\u0641\u06cc \u0641\u06cc\u0633 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u0622\u067e \u06a9\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0645\u06cc\u0632\u0628\u0627\u0646 \u067e\u0631 \u0631\u06c1\u06d2 \u06af\u0627\u06d4 Cloudflare \u067e\u06cc\u062c\u0632 \u0627\u06cc\u06a9 \u0641\u0631\u0627\u062e \u062d\u062f \u062a\u06a9 \u0645\u0641\u062a \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u0622\u06af\u06d2 \u0648\u0631\u06a9\u0631\u0632 \u067e\u06cc\u0688 \u067e\u0644\u0627\u0646 $5 \u0641\u06cc \u0645\u06c1\u06cc\u0646\u06c1 \u062a\u06a9 \u067e\u06be\u06cc\u0644\u0627 \u06c1\u0648\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0646\u0642\u0635\u0627\u0646:<\/p>\n<ul wp_automatic_readability=\"6.5\">\n<li wp_automatic_readability=\"2\">\n<p>\u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u062f\u0648 \u0646\u0638\u0627\u0645 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u06c1\u0645 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u06cc \u062a\u0646\u0635\u06cc\u0628\u0627\u062a (\u0627\u067e \u0688\u06cc\u0679\u0633\u060c \u067e\u0644\u06af \u0627\u0646\u060c \u0628\u06cc\u06a9 \u0627\u067e) \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0644\u06af \u0633\u06d2 \u0627\u06cc\u0633\u0679\u0631\u0648 \u06a9\u0648\u0688 \u0628\u06cc\u0633 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"0\">\n<p>\u0648\u0631\u0688\u067e\u0631\u06cc\u0633 REST API \u06a9\u06cc \u062d\u062f\u0648\u062f \u06c1\u06cc\u06ba\u06d4 \u067e\u06cc\u0686\u06cc\u062f\u06c1 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0688\u06be\u0627\u0646\u0686\u06d2 \u06cc\u0627 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0641\u06cc\u0686\u0631\u0632 \u06a9\u0648 \u06c1\u06cc\u0646\u0688\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0633\u06cc \u0645\u0642\u0635\u062f \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u06c1\u06cc\u0688 \u0644\u06cc\u0633 CMS \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u0627\u0645 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"1\">\n<p>\u0627\u0688\u0627\u067e\u0679\u0631 \u0627\u0648\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0627\u06c1\u062f\u0627\u0641 \u0627\u06cc\u06a9 \u062f\u0648\u0633\u0631\u06d2 \u0633\u06d2 \u062c\u0691\u06d2 \u06c1\u0648\u0626\u06d2 \u06c1\u06cc\u06ba\u06d4 @astrojs\/cloudflare v13 \u06a9\u0627\u0631\u06a9\u0646\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0635\u0641\u062d\u0627\u062a \u06a9\u0648 \u0641\u0631\u0633\u0648\u062f\u06c1 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0635\u0641\u062d\u06c1 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u0627\u0633\u06d2 v12 \u0631\u06a9\u06be\u0646\u0627 \u06c1\u06d2\u06d4 \u0627\u0686\u06be\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u06d2 \u0633\u06cc\u06a9\u0634\u0646 \u0645\u06cc\u06ba \u062a\u0641\u0635\u06cc\u0644\u0627\u062a<\/p>\n<\/li>\n<li wp_automatic_readability=\"4\">\n<p>\u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u0644\u06cc\u0645\u06cc\u0646\u0679\u0631 \u0627\u06cc\u0688\u0645\u0646\u0633\u0679\u0631\u06cc\u0679\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u0631\u06a9\u06be\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0633\u06cc \u06a9\u0648 \u0628\u06be\u06cc \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0628\u0631\u0627\u0624\u0632\u0631 \u0633\u06d2 \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1\u0627\u06ba\u060c \u0645\u0648\u0627\u062f \u0633\u06d2 \u0628\u0627\u06c1\u0631 \u062a\u0645\u0627\u0645 \u0628\u0635\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u06a9\u0648\u0688 \u0633\u06d2 \u06af\u0632\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0633\u0679\u06cc\u06a9 \u0631\u0648\u0627\u06cc\u062a\u06cc \u06c1\u0648\u0633\u0679\u0646\u06af \u067e\u0631 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633\u060c Cloudflare \u0635\u0641\u062d\u0627\u062a \u067e\u0631 Astro\u060c \u0627\u0648\u0631 GitHub \u062a\u0631\u0642\u06cc \u0627\u0648\u0631 \u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0627\u06cc\u06a9 \u067e\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0635\u0641\u0627\u0626\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u0645\u0633\u0626\u0644\u06c1 \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0645\u0633\u0626\u0644\u06d2 \u06a9\u06d2 \u0639\u0644\u0627\u0648\u06c1\u060c \u0628\u06c1\u062a\u0631 \u0622\u067e\u0634\u0646\u0632 \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-good-to-know\">\u062c\u0627\u0646 \u06a9\u0631 \u0627\u0686\u06be\u0627 \u0644\u06af\u0627<\/h2>\n<p><strong>\u0627\u067e\u0646\u0627 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0644\u0627\u06af \u0627\u0646 URL \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u062a\u0645\u0627\u0645 \u0628\u0648\u0679\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u062f\u0641 <code>\/wp-login.php<\/code> \u0627\u0648\u0631 <code>\/wp-admin<\/code>. WPS Hide Login \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 Customize \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba\u06d4 \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u062c\u0648 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0631\u0627\u0633\u062a\u06d2 \u0633\u06d2 \u0679\u06a9\u0631\u0627\u0626\u06d2 \u06af\u0627 \u0627\u0633\u06d2 404 \u0645\u0644\u06d2 \u06af\u0627\u06d4<\/p>\n<p><strong>\u062e\u062a\u0645<\/strong> <code>\/wp-json\/wp\/v2\/users<\/code> <strong>\u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1<\/strong> \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0646\u0627\u0645\u0648\u06ba \u06a9\u06cc \u0639\u0648\u0627\u0645\u06cc \u0641\u06c1\u0631\u0633\u062a \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u06cc\u0688 \u0644\u06cc\u0633 \u0645\u0648\u0688 \u0645\u06cc\u06ba\u060c \u0645\u0635\u0646\u0641 \u06a9\u0627 \u0688\u06cc\u0679\u0627 \u0628\u0630\u0631\u06cc\u0639\u06c1 \u062d\u0627\u0635\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2: <code>_embed<\/code> \u06cc\u06c1 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u0641\u0631\u0633\u0648\u062f\u06c1 \u06c1\u06d2\u06d4 mu \u067e\u0644\u06af \u0627\u0646 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-php\">add_filter('rest_endpoints', function($endpoints) {\n    unset($endpoints['\/wp\/v2\/users']);\n    unset($endpoints['\/wp\/v2\/users\/(?P<id>[d]+)']);\n    return $endpoints;\n});\n<\/id><\/code><\/pre>\n<p><strong>XML-RPC \u06a9\u0648 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 2FA \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba <code>add_filter('xmlrpc_enabled', '__return_false')<\/code> mu-plugin \u2014 \u06c1\u06cc\u0688 \u0644\u06cc\u0633 \u0645\u0648\u0688 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0628\u0631\u0648\u0679 \u0641\u0648\u0631\u0633 \u062d\u0645\u0644\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0639\u0627\u0645 \u06c1\u062f\u0641 \u06c1\u06d2\u06d4 Wordfence \u06a9\u06d2 Brute Force Protection \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 WP 2FA \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062a\u0645\u0627\u0645 \u0627\u06cc\u0688\u0645\u0646\u0633\u0679\u0631\u06cc\u0679\u0631 \u0627\u06a9\u0627\u0624\u0646\u0679\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648 \u0641\u06cc\u06a9\u0679\u0631 \u062a\u0635\u062f\u06cc\u0642 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p><strong>\u0627\u067e \u06af\u0631\u06cc\u0688 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/strong> <code>@astrojs\/cloudflare<\/code> <strong>\u0627\u06af\u0631 \u0622\u067e Cloudflare Pages git-push CI \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u062a\u0639\u06cc\u0646\u0627\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u06cc\u06c1 v13 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/strong> v12 \u0622\u0624\u0679 \u067e\u0679 <code>dist\/_worker.js<\/code> CI \u06a9\u0648 \u06a9\u06cc\u0627 \u0635\u0641\u062d\u0627\u062a \u06a9\u06cc \u062a\u0648\u0642\u0639 \u06c1\u06d2\u06d4 v13 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0641\u0627\u0631\u0645\u06cc\u0679 \u06a9\u0648 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>wrangler deploy<\/code> &#8211; \u0635\u0641\u062d\u0627\u062a CI \u06a9\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u062e\u062f\u0645\u0627\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 <code>dist<\/code> \u0645\u06cc\u06ba \u0641\u0648\u0644\u0688\u0631 \u06a9\u0648 \u0627\u06cc\u06a9 \u062c\u0627\u0645\u062f \u0633\u0627\u0626\u0679 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba \u0627\u0648\u0631 \u062a\u0645\u0627\u0645 SSR \u0631\u0627\u0633\u062a\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u0645\u0641\u06cc\u062f \u063a\u0644\u0637\u06cc \u06a9\u06d2 \u067e\u06cc\u063a\u0627\u0645 \u06a9\u06d2 404 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><strong>v12 \u0627\u0688\u0627\u067e\u0679\u0631 \u0641\u0631\u0633\u0648\u062f\u06af\u06cc \u06a9\u06cc \u0648\u0627\u0631\u0646\u0646\u06af \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/strong> <code>entrypointResolution<\/code><strong>.<\/strong> \u062e\u0627\u0645\u0648\u0634\u06cc \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 <code>entrypointResolution: 'auto'<\/code> \u0627\u0688\u0627\u067e\u0679\u0631 \u06a9\u06d2 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06a9\u0627 \u0627\u0631\u062a\u06a9\u0627\u0628 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0679\u06cc\u0633\u0679 \u06a9\u0631\u06cc\u06ba &#8211; \u06cc\u06c1 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0628\u0644\u0688 \u0648\u0631\u06a9\u0631 \u0627\u0646\u0679\u0631\u06cc \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u062d\u0633\u0628 \u0636\u0631\u0648\u0631\u062a \u067e\u0648\u0633\u0679 \u06a9\u06cc \u0642\u0633\u0645\u06cc\u06ba \u0627\u0633\u06cc \u067e\u06cc\u0679\u0631\u0646 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/strong> CPT \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u062c\u0633\u0679\u0631 \u06a9\u0631\u06cc\u06ba\u06d4 <code>show_in_rest: true<\/code> \u0627\u0648\u0631 <code>rest_base<\/code>\u0627\u0648\u0631 \u0627\u06af\u0644\u06cc \u0628\u0627\u0631 \u062f\u06a9\u06be\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 <code>\/wp-json\/wp\/v2\/your-base<\/code>. \u0648\u06c1\u06cc \u062f\u0631\u0622\u0645\u062f\u06cc \u0645\u062f\u062f\u06af\u0627\u0631\u060c <code>_embed<\/code>\u0633\u0644\u06af \u0631\u0648\u0679\u0646\u06af \u0628\u0627\u0644\u06a9\u0644 \u0627\u0633\u06cc \u0637\u0631\u062d \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><strong>REST API \u0635\u0641\u062d\u06c1 \u0628\u0646\u062f\u06cc \u06c1\u06cc\u0688\u0631 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/strong> \u062e\u0627\u0645 \u062c\u0648\u0627\u0628 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba: <code>X-WP-Total<\/code> \u0627\u0648\u0631 <code>X-WP-TotalPages<\/code> \u06a9\u0627\u0644 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc\u0688\u0631 <code>.json()<\/code>. \u0627\u06af\u0631 \u0622\u067e \u0645\u0646\u0627\u0633\u0628 \u067e\u0686\u06be\u0644\u0627\/\u0627\u06af\u0644\u0627 \u0635\u0641\u062d\u06c1 \u0628\u0646\u062f\u06cc \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u06cc\u06c1 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u0633 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u067e\u0691\u06be\u06cc\u06ba \u06a9\u06c1 \u0622\u06cc\u0627 \u0627\u06af\u0644\u0627 \u0635\u0641\u062d\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0679\u0631\u0627\u0626\u06cc\/\u06a9\u06cc\u0686 \u06a9\u06d2 \u0633\u0627\u062a\u06be API \u06a9\u0627\u0644\u0632 \u06a9\u0648 \u0644\u067e\u06cc\u0679\u06cc\u06ba\u06d4<\/strong> \u0627\u06af\u0631 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0645\u0646\u0633\u0644\u06a9 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u063a\u06cc\u0631 \u067e\u0631\u0648\u0633\u06cc\u0633 \u0634\u062f\u06c1 \u062f\u0631\u0622\u0645\u062f \u06a9\u06d2 \u0646\u062a\u06cc\u062c\u06d2 \u0645\u06cc\u06ba 500 \u0627\u0648\u0631 \u0648\u0627\u067e\u0633\u06cc \u06c1\u0648\u06af\u06cc\u06d4 try\/catch \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u06cc\u06a9 \u062e\u0627\u0644\u06cc \u0635\u0641\u062d\u06c1 \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u06a9\u06c1 \u0646\u0627\u06a9\u0627\u0645\u06cc \u06a9\u0627 \u0627\u06cc\u06a9 \u0628\u06c1\u062a\u0631 \u0645\u0648\u0688 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u0627\u06cc\u06a9 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u0627\u0633 \u0648\u0631\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/strong> \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 5.6 \u0646\u06d2 \u0635\u0627\u0631\u0641 \u2192 \u067e\u0631\u0648\u0641\u0627\u0626\u0644 \u0645\u06cc\u06ba \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u0627\u0633 \u0648\u0631\u0688\u0632 \u0634\u0627\u0645\u0644 \u06a9\u06cc\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0628\u0633 <code>WP_APP_USER<\/code> \u0627\u0648\u0631 <code>WP_APP_PASSWORD<\/code> \u0622\u067e \u06a9\u0627 <code>.env<\/code> \u0627\u0633\u06d2 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2 \u0646\u06c1 \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u0627\u06cc\u0688\u0645\u0646\u0633\u0679\u0631\u06cc\u0679\u0631 \u067e\u0627\u0633 \u0648\u0631\u0688: \u0641\u06cc \u0645\u0627\u062d\u0648\u0644 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 \u067e\u06cc\u0634 \u0646\u0638\u0627\u0631\u06c1 \u0679\u0648\u06a9\u0646 \u06a9\u0648 \u0645\u0633\u062a\u0642\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u06cc\u06ba\u06d4 <code>wp-config.php<\/code> (<code>define('HEADLESS_PREVIEW_SECRET', '...')<\/code>) \u0627\u0648\u0631 mu-plugin \u0645\u06cc\u06ba \u0645\u062a\u0639\u0644\u0642\u06c1 \u0645\u0633\u062a\u0642\u0644 \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u06ba\u06d4 \u0648\u0631\u0698\u0646 \u06a9\u0646\u0679\u0631\u0648\u0644 \u0641\u0627\u0626\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0631\u0627\u0632 \u06a9\u0648 \u06c1\u0627\u0631\u0688 \u06a9\u0648\u0688 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u06cc\u06c1 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0628\u063a\u06cc\u0631 \u06c1\u06cc\u0688 \u0644\u06cc\u0633 CMS \u06a9\u06d2 \u0628\u0637\u0648\u0631 Cloudflare \u067e\u06cc\u062c\u0632 \u067e\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a Astro \u0641\u0631\u0646\u0679 \u0627\u06cc\u0646\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u06cc\u0633\u06d2 \u0686\u0644\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4 \u0627\u06cc\u06a9 \u067e\u0631\u0627\u062c\u06cc\u06a9\u0679 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u062c\u0633 \u067e\u0631 \u0645\u06cc\u06ba \u062d\u0627\u0644 \u06c1\u06cc \u0645\u06cc\u06ba \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u062a\u06be\u0627 \u0648\u0631\u0688\u067e\u0631\u06cc\u0633 \u06a9\u0648 \u0633\u0627\u0626\u0679 \u06a9\u06d2 \u067e\u0633\u062f\u06cc\u062f \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627 \u062a\u06be\u0627\u06d4 \u0645\u0648\u0627\u062f \u06a9\u0627 \u0646\u0638\u0645 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":22811,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-22810","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/comments?post=22810"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22810\/revisions"}],"predecessor-version":[{"id":22812,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22810\/revisions\/22812"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media\/22811"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=22810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=22810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=22810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}