{"id":44875,"date":"2026-09-24T09:12:37","date_gmt":"2026-09-24T06:12:37","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/"},"modified":"2026-09-24T09:13:06","modified_gmt":"2026-09-24T06:13:06","slug":"enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/","title":{"rendered":"Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan &#8211; Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131"},"content":{"rendered":"<h2>Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan &#8211; Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131<\/h2>\n<p>Web geli\u015ftirme d\u00fcnyas\u0131nda, \u00f6zellikle de WordPress gibi i\u00e7erik y\u00f6netim sistemleriyle \u00e7al\u0131\u015f\u0131rken, kodunuzun belirli noktalarda devreye girmesini sa\u011flamak kritik \u00f6neme sahiptir. \u0130\u015fte tam bu noktada &#8220;enqueue hooks&#8221; dedi\u011fimiz yap\u0131lar devreye giriyor. Peki, bu kancalar ne i\u015fe yarar, neden bu kadar \u00e7e\u015fitlidir ve en \u00f6nemlisi, bunlar\u0131 birbirine kar\u0131\u015ft\u0131rmadan nas\u0131l do\u011fru \u015fekilde kullan\u0131r\u0131z? Bu makalede, d\u00f6rt ana enqueue hook&#8217;unu, farkl\u0131 kullan\u0131m alanlar\u0131n\u0131 ve her birini ne zaman tercih etmeniz gerekti\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz. Amac\u0131m\u0131z, bu g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131 daha bilin\u00e7li kullanman\u0131z\u0131 sa\u011flayarak, web sitenizin performans\u0131n\u0131 ve y\u00f6netilebilirli\u011fini art\u0131rman\u0131za yard\u0131mc\u0131 olmak.<\/p>\n<h2>Neden Enqueue Hooks&#8217;lar\u0131 Anlamal\u0131y\u0131z?<\/h2>\n<p>Modern web siteleri, sadece HTML, CSS ve JavaScript&#8217;ten ibaret de\u011fildir. Dinamik i\u00e7erikler, etkile\u015fimli kullan\u0131c\u0131 aray\u00fczleri ve karma\u015f\u0131k i\u015flevsellikler i\u00e7in bu temel teknolojilere ek olarak bir\u00e7ok k\u00fct\u00fcphane, framework ve \u00f6zel betik (script) kullan\u0131l\u0131r. Bu harici kaynaklar\u0131 veya kendi \u00f6zel betiklerimizi web sayfalar\u0131m\u0131za eklerken, onlar\u0131 do\u011fru zamanda, do\u011fru s\u0131rayla ve do\u011fru \u015fekilde y\u00fcklemek hayati \u00f6nem ta\u015f\u0131r. Yanl\u0131\u015f yap\u0131lan bir y\u00fckleme, sitenizin yava\u015flamas\u0131na, hatalar vermesine, hatta hi\u00e7 \u00e7al\u0131\u015fmamas\u0131na neden olabilir. \u0130\u015fte &#8220;enqueue&#8221; (s\u0131raya alma, kuyru\u011fa ekleme) mekanizmas\u0131 ve onunla ili\u015fkili hook&#8217;lar, bu s\u00fcreci d\u00fczenli ve g\u00fcvenli hale getirir.<\/p>\n<p>WordPress gibi pop\u00fcler sistemlerde, tema ve eklentiler arac\u0131l\u0131\u011f\u0131yla eklenen stil (CSS) ve betik (JavaScript) dosyalar\u0131n\u0131n y\u00f6netimi olduk\u00e7a \u00f6nemlidir. Bu sistemler, geli\u015ftiricilere kodlar\u0131n\u0131 do\u011frudan ana dosyalarla kar\u0131\u015ft\u0131rmak yerine, belirli noktalarda bu kaynaklar\u0131 &#8220;enqueue&#8221; etme imkan\u0131 sunar. Bu sayede, kodlar daha mod\u00fcler hale gelir, g\u00fcncellemeler kolayla\u015f\u0131r ve farkl\u0131 eklentilerin veya temalar\u0131n \u00e7ak\u0131\u015fma olas\u0131l\u0131\u011f\u0131 azal\u0131r. Enqueue hook&#8217;lar\u0131 ise, bu &#8220;enqueue&#8221; i\u015fleminin ne zaman ve nerede ger\u00e7ekle\u015fece\u011fini belirlememizi sa\u011flayan tetikleyicilerdir. Bu hook&#8217;lar\u0131 do\u011fru anlamak, web sitenizin temelini olu\u015fturan kaynaklar\u0131 optimize etmenin anahtar\u0131d\u0131r.<\/p>\n<p>D\u00fc\u015f\u00fcn\u00fcn ki bir e-ticaret sitesi kuruyorsunuz. Bu sitede hem \u00fcr\u00fcn listeleme sayfalar\u0131 i\u00e7in \u00f6zel bir g\u00f6rsel kayd\u0131rma (slider) beti\u011fi kullanmak istiyorsunuz, hem de \u00f6deme sayfas\u0131nda ge\u00e7erlilik kontrol\u00fc yapan bir form do\u011frulama beti\u011fi. Bu betikleri sadece ana \u015fablona eklemek, her sayfada gereksiz yere y\u00fcklenmelerine yol a\u00e7acakt\u0131r. Oysa enqueue mekanizmas\u0131 sayesinde, g\u00f6rsel kayd\u0131rma beti\u011fini sadece \u00fcr\u00fcn listeleme sayfalar\u0131nda, form do\u011frulama beti\u011fini ise sadece \u00f6deme sayfas\u0131nda y\u00fckleyebilirsiniz. Bu optimizasyon, sitenizin genel y\u00fcklenme s\u00fcresini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r ve kullan\u0131c\u0131 deneyimini iyile\u015ftirir. \u0130\u015fte bu se\u00e7ici y\u00fcklemeyi sa\u011flayan temel mekanizma enqueue hook&#8217;lar\u0131d\u0131r.<\/p>\n<h2>WordPress&#8217;te Enqueue Mekanizmas\u0131n\u0131n Temelleri<\/h2>\n<p>WordPress&#8217;te stil ve betik dosyalar\u0131n\u0131 y\u00f6netmek i\u00e7in kullan\u0131lan ana fonksiyonlar <code>wp_enqueue_style()<\/code> ve <code>wp_enqueue_script()<\/code>&#8216;tir. Bu fonksiyonlar, bir dosyan\u0131n URL&#8217;sini, ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 (yani bu dosyan\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in gereken di\u011fer dosyalar), s\u00fcr\u00fcm numaras\u0131n\u0131 ve dosyan\u0131n footer&#8217;da m\u0131 yoksa header&#8217;da m\u0131 y\u00fcklenece\u011fini belirtmemizi sa\u011flar. Bu fonksiyonlar\u0131n kendileri bir i\u015fe yaramaz; onlar\u0131 \u00e7a\u011f\u0131rmam\u0131z gerekir. \u0130\u015fte tam bu noktada hook&#8217;lar devreye girer.<\/p>\n<p>WordPress&#8217;in eylem (action) ve filtre (filter) hook&#8217;lar\u0131, geli\u015ftiricilere \u00e7ekirdek WordPress i\u015flevselli\u011fini geni\u015fletme veya de\u011fi\u015ftirme imkan\u0131 sunar. Enqueue hook&#8217;lar\u0131 da bu eylem hook&#8217;lar\u0131 kategorisine girer. Belirli bir eylem ger\u00e7ekle\u015fti\u011finde (\u00f6rne\u011fin, sayfa y\u00fcklenirken), bu hook&#8217;lar arac\u0131l\u0131\u011f\u0131yla kendi fonksiyonlar\u0131m\u0131z\u0131 \u00e7al\u0131\u015ft\u0131rabiliriz. Bu fonksiyonlar da <code>wp_enqueue_style()<\/code> ve <code>wp_enqueue_script()<\/code> gibi fonksiyonlar\u0131 \u00e7a\u011f\u0131rarak istedi\u011fimiz kaynaklar\u0131 sayfaya ekler.<\/p>\n<p>Bu mekanizman\u0131n temel mant\u0131\u011f\u0131 \u015fudur: WordPress, sayfa olu\u015fturma s\u00fcrecinin belirli a\u015famalar\u0131nda &#8220;ben \u015fimdi stil y\u00fckleyece\u011fim&#8221; veya &#8220;ben \u015fimdi betik y\u00fckleyece\u011fim&#8221; gibi i\u015faretler verir. Bu i\u015faretler hook&#8217;lard\u0131r. Biz de bu i\u015faretleri yakalay\u0131p, kendi y\u00fckleme fonksiyonlar\u0131m\u0131z\u0131 bu i\u015faretlerin tetikledi\u011fi anda \u00e7al\u0131\u015facak \u015fekilde kaydederiz. Bu, kodunuzun daha temiz, daha organize ve daha az hataya a\u00e7\u0131k olmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, WordPress&#8217;in kendisi taraf\u0131ndan sa\u011flanan bu standartla\u015ft\u0131r\u0131lm\u0131\u015f y\u00f6ntem, tema ve eklentiler aras\u0131nda uyumlulu\u011fu da art\u0131r\u0131r.<\/p>\n<p>\u00d6rne\u011fin, bir eklenti geli\u015ftirirken, eklentinizin \u00f6zel bir JavaScript dosyas\u0131na ihtiyac\u0131 oldu\u011funu varsayal\u0131m. Bu JavaScript dosyas\u0131n\u0131 do\u011frudan tema dosyalar\u0131na eklemek yerine, eklentinizin ana PHP dosyas\u0131nda <code>wp_enqueue_script()<\/code> fonksiyonunu kullanarak bu dosyay\u0131 s\u0131raya al\u0131rs\u0131n\u0131z. Ancak bu fonksiyonu nerede \u00e7a\u011f\u0131racaks\u0131n\u0131z? \u0130\u015fte burada bir hook&#8217;a ihtiyac\u0131n\u0131z var. Bu hook, WordPress&#8217;in betikleri y\u00fcklemeye haz\u0131r oldu\u011fu bir an\u0131 temsil eder. Bu an\u0131 yakalay\u0131p kendi fonksiyonunuzu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, WordPress sizin i\u00e7in bu beti\u011fi do\u011fru zamanda ve do\u011fru yere ekleyecektir. Bu, kodunuzun WordPress&#8217;in genel yap\u0131s\u0131yla uyumlu olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>D\u00f6rt Ana Enqueue Hook&#8217;u ve Kullan\u0131m Alanlar\u0131<\/h2>\n<p>WordPress&#8217;te stil ve betik y\u00fcklemek i\u00e7in kullan\u0131lan d\u00f6rt temel hook vard\u0131r. Bunlar, sayfan\u0131n hangi a\u015famas\u0131nda ve hangi ba\u011flamda kaynak eklemek istedi\u011fimize g\u00f6re farkl\u0131l\u0131k g\u00f6sterir. Her birinin kendine \u00f6zg\u00fc bir amac\u0131 ve kullan\u0131m senaryosu bulunur. Bu d\u00f6rtl\u00fcye yak\u0131ndan bakal\u0131m:<\/p>\n<h3>1. <code>wp_enqueue_scripts<\/code>: Genel Ama\u00e7l\u0131 Frontend Y\u00fcklemeler<\/h3>\n<p>Bu hook, en s\u0131k kullan\u0131lan ve en genel ama\u00e7l\u0131 olan\u0131d\u0131r. WordPress sitenizin \u00f6n y\u00fcz\u00fcnde (frontend), yani ziyaret\u00e7ilerin g\u00f6rd\u00fc\u011f\u00fc sayfalarda stil ve betik dosyalar\u0131n\u0131 y\u00fcklemek i\u00e7in kullan\u0131l\u0131r. Bu hook, sayfan\u0131n HTML \u00e7\u0131kt\u0131s\u0131 olu\u015fturulmaya ba\u015fland\u0131ktan sonra ve genellikle <code>&lt;head&gt;<\/code> b\u00f6l\u00fcm\u00fc tamamlanmadan hemen \u00f6nce tetiklenir. Bu nedenle, \u00e7o\u011fu durumda stil dosyalar\u0131n\u0131z i\u00e7in idealdir \u00e7\u00fcnk\u00fc CSS&#8217;in sayfa yap\u0131s\u0131 olu\u015fturulmadan \u00f6nce y\u00fcklenmesi, &#8220;Flickering&#8221; (titreme) olarak adland\u0131r\u0131lan, i\u00e7eri\u011fin ge\u00e7 y\u00fcklenip g\u00f6r\u00fcn\u00fcr hale gelmesi sorununu \u00f6nler.<\/p>\n<p><code>wp_enqueue_scripts<\/code> hook&#8217;unu kullan\u0131rken, genellikle <code>functions.php<\/code> dosyan\u0131zda veya \u00f6zel bir eklentinizin ana dosyas\u0131nda bir fonksiyon tan\u0131mlars\u0131n\u0131z. Bu fonksiyon i\u00e7inde <code>wp_enqueue_style()<\/code> ve <code>wp_enqueue_script()<\/code> fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131r\u0131rs\u0131n\u0131z. \u00d6rne\u011fin, teman\u0131z\u0131n \u00f6zel bir ana men\u00fc animasyonu i\u00e7in bir JavaScript dosyas\u0131 varsa veya bir blog yaz\u0131s\u0131 i\u00e7in \u00f6zel bir yorumlar formu stil dosyas\u0131 eklemek istiyorsan\u0131z, bu hook tam size g\u00f6re.<\/p>\n<p><strong>Ger\u00e7ek D\u00fcnya Senaryosu:<\/strong> Bir foto\u011fraf\u00e7\u0131 teman\u0131z var ve her galeri sayfas\u0131 i\u00e7in \u00f6zel bir g\u00f6rsel efekt k\u00fct\u00fcphanesi (\u00f6rne\u011fin, Lightbox benzeri bir efekt) kullanmak istiyorsunuz. Bu k\u00fct\u00fcphanenin CSS ve JavaScript dosyalar\u0131n\u0131 sadece galeri sayfalar\u0131nda y\u00fcklemek istersiniz. <code>wp_enqueue_scripts<\/code> hook&#8217;unu kullanarak, bir ko\u015ful blo\u011fu (\u00f6rne\u011fin, <code>is_page_template('gallery.php')<\/code>) i\u00e7ine bu dosyalar\u0131 s\u0131raya alabilirsiniz. B\u00f6ylece, ziyaret\u00e7i ana sayfay\u0131 veya ileti\u015fim sayfas\u0131n\u0131 gezdi\u011finde bu gereksiz dosyalar y\u00fcklenmez, siteniz daha h\u0131zl\u0131 a\u00e7\u0131l\u0131r.<\/p>\n<p>Kod \u00f6rne\u011fi olarak, teman\u0131z\u0131n <code>functions.php<\/code> dosyas\u0131na \u015funlar\u0131 ekleyebilirsiniz:<\/p>\n<pre><code>\n  function my_custom_scripts() {\n      \/\/ \u00d6zel CSS dosyas\u0131n\u0131 y\u00fckle\n      wp_enqueue_style( 'my-custom-styles', get_template_directory_uri() . '\/css\/custom-styles.css' );\n\n      \/\/ \u00d6zel JS dosyas\u0131n\u0131 y\u00fckle (footer'da y\u00fcklenmesi \u00f6nerilir)\n      wp_enqueue_script( 'my-custom-scripts', get_template_directory_uri() . '\/js\/custom-scripts.js', array('jquery'), '1.0', true );\n  }\n  add_action( 'wp_enqueue_scripts', 'my_custom_scripts' );\n  <\/code><\/pre>\n<p>Burada <code>array('jquery')<\/code>, \u00f6zel JavaScript dosyam\u0131z\u0131n jQuery k\u00fct\u00fcphanesine ba\u011f\u0131ml\u0131 oldu\u011funu belirtir. Son parametre olan <code>true<\/code> ise beti\u011fin footer&#8217;da y\u00fcklenmesini sa\u011flar, bu da sayfan\u0131n daha h\u0131zl\u0131 render edilmesine yard\u0131mc\u0131 olur.<\/p>\n<h3>2. <code>admin_enqueue_scripts<\/code>: Y\u00f6netici Paneli \u00d6zelle\u015ftirmeleri<\/h3>\n<p>Bu hook, ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, WordPress y\u00f6netici paneli (backend) i\u00e7in stil ve betik dosyalar\u0131n\u0131 y\u00fcklemek amac\u0131yla kullan\u0131l\u0131r. E\u011fer y\u00f6netici panelinde \u00f6zel bir g\u00f6r\u00fcn\u00fcm sa\u011flamak, yeni bir ayar sayfas\u0131 eklemek veya mevcut bir ayar sayfas\u0131n\u0131 daha i\u015flevsel hale getirmek istiyorsan\u0131z, bu hook&#8217;u kullanmal\u0131s\u0131n\u0131z. <code>wp_enqueue_scripts<\/code> frontend i\u00e7in ne kadar \u00f6nemliyse, <code>admin_enqueue_scripts<\/code> de backend i\u00e7in o kadar \u00f6nemlidir.<\/p>\n<p>Bu hook da genellikle tema veya eklenti dosyalar\u0131n\u0131zda tan\u0131mlan\u0131r. Ancak bu kez, fonksiyonunuzu <code>admin_enqueue_scripts<\/code> eylemine ba\u011flars\u0131n\u0131z. Bu hook&#8217;un bir \u00f6zelli\u011fi, hangi sayfa veya post t\u00fcr\u00fc i\u00e7in betik y\u00fcklemek istedi\u011finizi belirtebilmenizdir. Bu, y\u00f6netici panelinin gereksiz yere yava\u015flamas\u0131n\u0131 \u00f6nler. \u00d6rne\u011fin, sadece &#8220;Yaz\u0131lar&#8221; sayfas\u0131nda \u00e7al\u0131\u015fan \u00f6zel bir JavaScript kodunuz varsa, bunu sadece o sayfada y\u00fckleyebilirsiniz.<\/p>\n<p><strong>Ger\u00e7ek D\u00fcnya Senaryosu:<\/strong> Bir e-ticaret eklentisi geli\u015ftiriyorsunuz ve \u00fcr\u00fcn d\u00fczenleme sayfas\u0131nda, \u00fcr\u00fcn varyantlar\u0131 i\u00e7in daha geli\u015fmi\u015f bir renk se\u00e7ici (color picker) aray\u00fcz\u00fc eklemek istiyorsunuz. Bu renk se\u00e7ici i\u00e7in \u00f6zel bir JavaScript k\u00fct\u00fcphanesi ve CSS dosyas\u0131 gereklidir. Bu dosyalar\u0131 sadece \u00fcr\u00fcn d\u00fczenleme sayfas\u0131nda y\u00fcklemek, y\u00f6netici panelinin genel performans\u0131n\u0131 olumlu etkiler. <code>admin_enqueue_scripts<\/code> hook&#8217;unu kullanarak, <code>$hook_suffix<\/code> parametresini kontrol edip, sadece ilgili sayfada bu kaynaklar\u0131 s\u0131raya alabilirsiniz.<\/p>\n<p>\u00d6rnek bir kullan\u0131m:<\/p>\n<pre><code>\n  function my_admin_scripts( $hook_suffix ) {\n      \/\/ Sadece \u00fcr\u00fcn d\u00fczenleme sayfas\u0131nda (post.php?post_type=product)\n      if ( 'post.php' === $hook_suffix && 'product' === get_post_type() ) {\n          wp_enqueue_style( 'product-admin-styles', plugins_url( '\/css\/product-admin.css', __FILE__ ) );\n          wp_enqueue_script( 'product-admin-scripts', plugins_url( '\/js\/product-admin.js', __FILE__ ), array('wp-color-picker'), '1.0', true );\n      }\n  }\n  add_action( 'admin_enqueue_scripts', 'my_admin_scripts' );\n  <\/code><\/pre>\n<p>Burada <code>$hook_suffix<\/code>, mevcut y\u00f6netici sayfas\u0131n\u0131n benzersiz tan\u0131mlay\u0131c\u0131s\u0131n\u0131 i\u00e7erir. Biz de bu tan\u0131mlay\u0131c\u0131y\u0131 kontrol ederek betiklerimizi sadece do\u011fru sayfada y\u00fckl\u00fcyoruz. <code>wp-color-picker<\/code> ise WordPress&#8217;in kendi renk se\u00e7ici beti\u011fine olan ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 belirtir.<\/p>\n<h3>3. <code>login_enqueue_scripts<\/code>: Giri\u015f Sayfas\u0131 \u00d6zelle\u015ftirmeleri<\/h3>\n<p>WordPress&#8217;in giri\u015f (login) sayfas\u0131, genellikle <code>wp-login.php<\/code> adresiyle eri\u015filen, kullan\u0131c\u0131lar\u0131n sisteme giri\u015f yapt\u0131\u011f\u0131 \u00f6zel bir sayfad\u0131r. Bu sayfan\u0131n g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc \u00f6zelle\u015ftirmek, marka kimli\u011finizi yans\u0131tmak veya ek g\u00fcvenlik uyar\u0131lar\u0131 gibi bilgiler eklemek isteyebilirsiniz. \u0130\u015fte tam bu noktada <code>login_enqueue_scripts<\/code> hook&#8217;u devreye girer. Bu hook, sadece giri\u015f sayfas\u0131 y\u00fcklendi\u011finde tetiklenir ve bu sayfan\u0131n <code>&lt;head&gt;<\/code> b\u00f6l\u00fcm\u00fcne stil ve betik eklemenize olanak tan\u0131r.<\/p>\n<p>Bu hook, genellikle tema veya eklenti taraf\u0131ndan sa\u011flan\u0131r ve y\u00f6netici paneli hook&#8217;undan daha spesifik bir alana odaklan\u0131r. Giri\u015f sayfas\u0131n\u0131n standart g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc de\u011fi\u015ftirmek veya \u00fczerine ek i\u015flevsellikler katmak istedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r. \u00d6rne\u011fin, giri\u015f formuna \u00f6zel bir arka plan g\u00f6rseli eklemek veya &#8220;\u015eifremi Unuttum&#8221; ba\u011flant\u0131s\u0131n\u0131 farkl\u0131 bir yere ta\u015f\u0131mak gibi i\u015flemler bu hook ile yap\u0131labilir.<\/p>\n<p><strong>Ger\u00e7ek D\u00fcnya Senaryosu:<\/strong> Bir ajans olarak, m\u00fc\u015fterileriniz i\u00e7in WordPress siteleri kuruyorsunuz. Her m\u00fc\u015fterinin kendi kurumsal kimli\u011fi var ve giri\u015f sayfas\u0131n\u0131n da bu kimli\u011fe uygun olmas\u0131n\u0131 istiyorsunuz. M\u00fc\u015fterinin logosunu ve renklerini i\u00e7eren \u00f6zel bir CSS dosyas\u0131 olu\u015fturup, bu dosyay\u0131 <code>login_enqueue_scripts<\/code> hook&#8217;u arac\u0131l\u0131\u011f\u0131yla giri\u015f sayfas\u0131na ekleyebilirsiniz. Bu, m\u00fc\u015fteriye profesyonel bir hizmet sundu\u011funuzu g\u00f6sterir.<\/p>\n<p>\u00d6rnek kullan\u0131m:<\/p>\n<pre><code>\n  function my_login_styles() {\n      wp_enqueue_style( 'custom-login-styles', get_stylesheet_directory_uri() . '\/css\/login-styles.css' );\n  }\n  add_action( 'login_enqueue_scripts', 'my_login_styles' );\n  <\/code><\/pre>\n<p>Bu kod, tema dizinindeki <code>css\/login-styles.css<\/code> dosyas\u0131n\u0131 giri\u015f sayfas\u0131na ekleyecektir. Bu CSS dosyas\u0131 i\u00e7inde, <code>body<\/code>, <code>#loginform<\/code> gibi se\u00e7icileri kullanarak giri\u015f sayfas\u0131n\u0131n g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc istedi\u011finiz gibi de\u011fi\u015ftirebilirsiniz.<\/p>\n<h3>4. <code>wp_print_scripts<\/code> ve <code>wp_print_styles<\/code>: Daha D\u00fc\u015f\u00fck Seviyeli Kontrol<\/h3>\n<p>Yukar\u0131da bahsedilen \u00fc\u00e7 hook, genellikle kaynaklar\u0131 s\u0131raya almak (enqueue) i\u00e7in kullan\u0131l\u0131r. Ancak bazen, \u00f6zellikle daha karma\u015f\u0131k senaryolarda veya belirli bir nedenden dolay\u0131 kaynaklar\u0131 do\u011frudan yazd\u0131rmak (print) isteyebilirsiniz. \u0130\u015fte bu noktada <code>wp_print_scripts<\/code> ve <code>wp_print_styles<\/code> hook&#8217;lar\u0131 devreye girer. Bu hook&#8217;lar, WordPress&#8217;in zaten s\u0131raya ald\u0131\u011f\u0131 (enqueued) betik ve stil dosyalar\u0131n\u0131 yazd\u0131rmas\u0131ndan hemen \u00f6nce tetiklenir.<\/p>\n<p>Bu hook&#8217;lar\u0131 kullanmak, kaynaklar\u0131 s\u0131raya almak yerine do\u011frudan <code>&lt;script&gt;<\/code> veya <code>&lt;link rel=\"stylesheet\"&gt;<\/code> etiketlerini HTML&#8217;e eklemenizi sa\u011flar. Bu, daha az esneklik sunar ve genellikle \u00f6nerilen y\u00f6ntem de\u011fildir. Ancak, baz\u0131 durumlarda, \u00f6rne\u011fin betiklerinize veya stillerinize \u00f6zel inline (sat\u0131r i\u00e7i) JavaScript kodlar\u0131 veya CSS kurallar\u0131 eklemek istedi\u011finizde kullan\u0131\u015fl\u0131 olabilir. Bu hook&#8217;lar, <code>wp_head<\/code> ve <code>wp_footer<\/code> hook&#8217;lar\u0131na daha yak\u0131nd\u0131r.<\/p>\n<p><strong>Ger\u00e7ek D\u00fcnya Senaryosu:<\/strong> Bir plugin geli\u015ftiriyorsunuz ve bu plugin&#8217;in \u00e7al\u0131\u015fmas\u0131 i\u00e7in baz\u0131 temel ayarlar\u0131n veya de\u011fi\u015fkenlerin JavaScript ile tan\u0131mlanmas\u0131 gerekiyor. Bu de\u011fi\u015fkenler, plugin&#8217;in frontend&#8217;de nas\u0131l davranaca\u011f\u0131n\u0131 belirleyebilir. <code>wp_print_scripts<\/code> hook&#8217;unu kullanarak, bu de\u011fi\u015fkenleri <code>&lt;script&gt;<\/code> etiketleri aras\u0131na inline olarak yazd\u0131rabilirsiniz. \u00d6rne\u011fin, bir harita plugin&#8217;i i\u00e7in API anahtar\u0131n\u0131 veya ba\u015flang\u0131\u00e7 koordinatlar\u0131n\u0131 bu \u015fekilde tan\u0131mlayabilirsiniz.<\/p>\n<p>\u00d6rnek kullan\u0131m:<\/p>\n<pre><code>\n  function my_inline_scripts() {\n      \/\/ Sadece belirli bir sayfada \u00e7al\u0131\u015facak inline script\n      if ( is_page('contact') ) {\n          ?>\n          <script type=\"text\/javascript\">\n              var contactMapOptions = {\n                  center: { lat: 40.7128, lng: -74.0060 },\n                  zoom: 12\n              };\n              \/\/ Di\u011fer JavaScript kodlar\u0131...\n          <\/script>\n          <?php\n      }\n  }\n  add_action( 'wp_print_scripts', 'my_inline_scripts' );\n  <\/code><\/pre>\n<p>Bu \u00f6rnekte, sadece \"contact\" adl\u0131 sayfada \u00e7al\u0131\u015facak bir JavaScript de\u011fi\u015fkeni tan\u0131ml\u0131yoruz. Bu t\u00fcr inline kodlar i\u00e7in <code>wp_print_scripts<\/code> hook'u uygundur. Ancak unutulmamal\u0131d\u0131r ki, b\u00fcy\u00fck miktarda kodu bu \u015fekilde eklemek yerine, ayr\u0131 bir JavaScript dosyas\u0131 olu\u015fturup onu <code>wp_enqueue_script()<\/code> ile y\u00fcklemek daha iyi bir pratiktir.<\/p>\n<h2>Enqueue Hook'lar\u0131n\u0131 Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131<\/h2>\n<p>D\u00f6rt farkl\u0131 hook ve farkl\u0131 kullan\u0131m alanlar\u0131, ba\u015flang\u0131\u00e7ta biraz kafa kar\u0131\u015ft\u0131r\u0131c\u0131 olabilir. Ancak baz\u0131 temel prensiplere dikkat ederek bu kar\u0131\u015f\u0131kl\u0131\u011f\u0131 \u00f6nleyebiliriz. Anahtar nokta, her hook'un hangi ba\u011flamda ve ne zaman \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlamakt\u0131r.<\/p>\n<p><strong>1. Amac\u0131n\u0131z\u0131 Belirleyin:<\/strong> \u0130lk ad\u0131m, ne yapmak istedi\u011finizi netle\u015ftirmektir. Frontend i\u00e7in mi, backend i\u00e7in mi, yoksa sadece giri\u015f sayfas\u0131 i\u00e7in mi stil veya betik ekliyorsunuz? Amac\u0131n\u0131z buysa, <code>wp_enqueue_scripts<\/code>, <code>admin_enqueue_scripts<\/code> veya <code>login_enqueue_scripts<\/code> hook'lar\u0131ndan birini se\u00e7melisiniz. E\u011fer kaynaklar\u0131 s\u0131raya almak yerine do\u011frudan HTML'e eklemek istiyorsan\u0131z, <code>wp_print_scripts<\/code> veya <code>wp_print_styles<\/code> hook'lar\u0131n\u0131 d\u00fc\u015f\u00fcnebilirsiniz, ancak bu genellikle daha az tercih edilen bir y\u00f6ntemdir.<\/p>\n<p><strong>2. Do\u011fru Fonksiyonu Se\u00e7in:<\/strong> Enqueue hook'lar\u0131, <code>wp_enqueue_style()<\/code> ve <code>wp_enqueue_script()<\/code> fonksiyonlar\u0131n\u0131 \u00e7a\u011f\u0131rmak i\u00e7in kullan\u0131l\u0131r. Bu fonksiyonlar, kaynaklar\u0131 g\u00fcvenli ve d\u00fczenli bir \u015fekilde sayfaya eklemenizi sa\u011flar. Bu fonksiyonlar\u0131 do\u011frudan hook'lar\u0131n i\u00e7inde kullanmak yerine, ayr\u0131 bir fonksiyon tan\u0131mlay\u0131p bu fonksiyonu hook'a ba\u011flamak daha iyi bir pratiktir. Bu, kodunuzu daha okunabilir ve y\u00f6netilebilir hale getirir.<\/p>\n<p><strong>3. Ko\u015fullu Y\u00fckleme Yap\u0131n:<\/strong> Kaynaklar\u0131n\u0131z\u0131 sadece gerekti\u011fi yerde y\u00fcklemek, sitenizin performans\u0131n\u0131 art\u0131rman\u0131n en etkili yollar\u0131ndan biridir. WordPress'in sundu\u011fu ko\u015ful fonksiyonlar\u0131n\u0131 (\u00f6rne\u011fin, <code>is_page()<\/code>, <code>is_single()<\/code>, <code>is_admin()<\/code>, <code>is_user_logged_in()<\/code>) kullanarak, kaynaklar\u0131n\u0131z\u0131 yaln\u0131zca belirli sayfalarda, belirli post t\u00fcrlerinde veya belirli kullan\u0131c\u0131lar i\u00e7in y\u00fckleyebilirsiniz. Bu, gereksiz y\u00fcklemeleri \u00f6nler ve kullan\u0131c\u0131 deneyimini iyile\u015ftirir.<\/p>\n<p><strong>4. Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Y\u00f6netin:<\/strong> E\u011fer ekledi\u011finiz JavaScript dosyas\u0131 jQuery gibi ba\u015fka bir k\u00fct\u00fcphaneye ba\u011f\u0131ml\u0131ysa, bunu <code>wp_enqueue_script()<\/code> fonksiyonunun \u00fc\u00e7\u00fcnc\u00fc parametresinde belirtmeyi unutmay\u0131n. Bu, WordPress'in ba\u011f\u0131ml\u0131 k\u00fct\u00fcphaneyi \u00f6nce y\u00fcklemesini sa\u011flar. Aksi takdirde, beti\u011finiz \u00e7al\u0131\u015fmayabilir.<\/p>\n<p><strong>5. Footer Y\u00fcklemeyi Tercih Edin:<\/strong> JavaScript dosyalar\u0131 i\u00e7in, e\u011fer performans odakl\u0131ysan\u0131z, <code>wp_enqueue_script()<\/code> fonksiyonunun son parametresini <code>true<\/code> yaparak bu betikleri sayfan\u0131n footer'\u0131nda y\u00fcklemeyi tercih edin. Bu, sayfan\u0131n i\u00e7eri\u011finin daha h\u0131zl\u0131 g\u00f6r\u00fcnt\u00fclenmesini sa\u011flar, \u00e7\u00fcnk\u00fc taray\u0131c\u0131 betikleri y\u00fcklerken sayfan\u0131n geri kalan\u0131n\u0131 beklemek zorunda kalmaz.<\/p>\n<p><strong>6. Kodunuzu Organize Edin:<\/strong> Tema geli\u015ftiriyorsan\u0131z, enqueue i\u015flemlerinizi teman\u0131z\u0131n <code>functions.php<\/code> dosyas\u0131na ekleyin. Eklenti geli\u015ftiriyorsan\u0131z, bu i\u015flemleri eklentinizin ana PHP dosyas\u0131na ekleyin. Bu, kodunuzun nerede oldu\u011funu bilmenizi kolayla\u015ft\u0131r\u0131r.<\/p>\n<p><strong>7. WordPress Dok\u00fcmantasyonuna Ba\u015fvurun:<\/strong> WordPress'in resmi geli\u015ftirici dok\u00fcmantasyonu, bu fonksiyonlar ve hook'lar hakk\u0131nda en g\u00fcncel ve do\u011fru bilgiyi i\u00e7erir. Tak\u0131ld\u0131\u011f\u0131n\u0131zda veya emin olamad\u0131\u011f\u0131n\u0131zda, her zaman bu kayna\u011fa ba\u015fvurmak en iyisidir.<\/p>\n<h2>Vaka Analizi: Karma\u015f\u0131k Bir Eklentide Enqueue Y\u00f6netimi<\/h2>\n<p>Bir \"Geli\u015fmi\u015f \u00dcr\u00fcn Filtreleme\" eklentisi geli\u015ftirdi\u011finizi varsayal\u0131m. Bu eklentinin hem frontend'de \u00fcr\u00fcn listeleme sayfalar\u0131nda geli\u015fmi\u015f filtreleme se\u00e7enekleri sunmas\u0131 gerekiyor, hem de y\u00f6netici panelinde bu filtrelerin ayarlar\u0131n\u0131 y\u00f6netebilece\u011finiz \u00f6zel bir sayfa sunmas\u0131 gerekiyor. Ayr\u0131ca, baz\u0131 filtrelerin (\u00f6rne\u011fin, renk filtreleri) \u00f6zel bir g\u00f6rsel aray\u00fcze ihtiyac\u0131 var.<\/p>\n<p><strong>Frontend (\u00dcr\u00fcn Listeleme Sayfas\u0131):<\/strong><\/p>\n<ul>\n<li>Ana filtreleme mant\u0131\u011f\u0131n\u0131 i\u00e7eren bir JavaScript dosyas\u0131.<\/li>\n<li>Filtreleme se\u00e7enekleri i\u00e7in \u00f6zel CSS dosyas\u0131.<\/li>\n<li>Renk se\u00e7ici gibi g\u00f6rsel aray\u00fczler i\u00e7in ayr\u0131 bir JavaScript ve CSS dosyas\u0131.<\/li>\n<\/ul>\n<p>Bu kaynaklar\u0131 y\u00fcklemek i\u00e7in <code>wp_enqueue_scripts<\/code> hook'unu kullan\u0131rs\u0131n\u0131z. Kaynaklar\u0131 sadece \u00fcr\u00fcn listeleme sayfalar\u0131nda y\u00fcklemek i\u00e7in <code>is_woocommerce()<\/code> ve <code>is_product_category()<\/code> gibi ko\u015fullar\u0131 kullanabilirsiniz. Renk se\u00e7ici dosyalar\u0131n\u0131 ise sadece renk filtresinin aktif oldu\u011fu durumlarda y\u00fcklemek i\u00e7in ek ko\u015fullar ekleyebilirsiniz.<\/p>\n<p><strong>Backend (Ayarlar Sayfas\u0131):<\/strong><\/p>\n<ul>\n<li>Ayarlar sayfas\u0131n\u0131n g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc g\u00fczelle\u015ftirecek \u00f6zel CSS.<\/li>\n<li>Ayarlar sayfas\u0131nda \u00e7al\u0131\u015fan JavaScript (\u00f6rne\u011fin, ayarlar\u0131n kaydedilmesi veya \u00f6nizlenmesi i\u00e7in).<\/li>\n<\/ul>\n<p>Bu kaynaklar\u0131 y\u00fcklemek i\u00e7in <code>admin_enqueue_scripts<\/code> hook'unu kullan\u0131rs\u0131n\u0131z. Hangi ayarlar sayfas\u0131nda oldu\u011funuzu belirlemek i\u00e7in <code>$hook_suffix<\/code> parametresini kontrol edersiniz. \u00d6rne\u011fin, eklentinizin kendi \u00f6zel men\u00fc \u00f6\u011fesiyle a\u00e7\u0131lan sayfas\u0131n\u0131n hook suffix'i farkl\u0131 olacakt\u0131r.<\/p>\n<p><strong>Giri\u015f Sayfas\u0131 (Opsiyonel):<\/strong><\/p>\n<p>E\u011fer eklentiniz y\u00f6neticiye \u00f6zel bir mesaj\u0131 giri\u015f sayfas\u0131nda g\u00f6stermek istiyorsa, <code>login_enqueue_scripts<\/code> hook'unu kullanarak bu mesaj\u0131 i\u00e7eren bir CSS veya JavaScript ekleyebilirsiniz.<\/p>\n<p>Bu senaryoda, her bir hook'un do\u011fru ba\u011flamda kullan\u0131lmas\u0131, eklentinin hem performansl\u0131 hem de bak\u0131m\u0131 kolay olmas\u0131n\u0131 sa\u011flar. Kaynaklar\u0131n gereksiz yere y\u00fcklenmemesi, sitenin genel h\u0131z\u0131n\u0131 olumlu etkilerken, kodun mod\u00fcler yap\u0131s\u0131 da gelecekteki g\u00fcncellemeleri kolayla\u015ft\u0131r\u0131r.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<h3>1. Bir beti\u011fi hem frontend hem de backend'de kullanmam gerekiyorsa ne yapmal\u0131y\u0131m?<\/h3>\n<p>E\u011fer bir betik hem frontend hem de backend'de \u00e7al\u0131\u015facaksa, genellikle <code>wp_enqueue_scripts<\/code> hook'unu kullan\u0131r ve bu beti\u011fi sadece frontend'de y\u00fcklersiniz. E\u011fer bu beti\u011fin backend'de de \u00e7al\u0131\u015fmas\u0131 gerekiyorsa, o zaman <code>admin_enqueue_scripts<\/code> hook'unu da kullanarak beti\u011fi backend'de de ayr\u0131ca y\u00fcklersiniz. Ancak beti\u011finizi genel bir fonksiyon i\u00e7ine al\u0131p, hem <code>wp_enqueue_scripts<\/code> hem de <code>admin_enqueue_scripts<\/code> hook'lar\u0131na ba\u011flamak daha temiz bir \u00e7\u00f6z\u00fcm olabilir. Beti\u011finizin i\u00e7inde hangi ortamda \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kontrol eden mant\u0131k ekleyebilirsiniz.<\/p>\n<h3>2. Hangi hook'u kullanaca\u011f\u0131m\u0131 nas\u0131l anlar\u0131m?<\/h3>\n<p>Temel kural \u015fudur: Frontend'de bir \u015fey yap\u0131yorsan\u0131z <code>wp_enqueue_scripts<\/code>, backend'de (y\u00f6netici paneli) bir \u015fey yap\u0131yorsan\u0131z <code>admin_enqueue_scripts<\/code>, giri\u015f sayfas\u0131n\u0131 \u00f6zelle\u015ftiriyorsan\u0131z <code>login_enqueue_scripts<\/code> kullan\u0131n. <code>wp_print_scripts<\/code> ve <code>wp_print_styles<\/code> ise daha \u00e7ok inline kod eklemek istedi\u011finizde veya belirli bir kayna\u011f\u0131 WordPress'in otomatik y\u00fckleme mekanizmas\u0131 d\u0131\u015f\u0131nda y\u00f6netmek istedi\u011finizde kullan\u0131l\u0131r, ancak bu genellikle daha az tercih edilen bir y\u00f6ntemdir.<\/p>\n<h3>3. <code>wp_enqueue_script<\/code> fonksiyonundaki <code>array(&#039;jquery&#039;)<\/code> ne anlama geliyor?<\/h3>\n<p>Bu parametre, mevcut beti\u011fin \u00e7al\u0131\u015fmas\u0131 i\u00e7in gereken di\u011fer betiklerin bir listesidir. \u00d6rne\u011fin, <code>array('jquery')<\/code> demek, bu beti\u011fin \u00e7al\u0131\u015fmadan \u00f6nce jQuery k\u00fct\u00fcphanesinin y\u00fcklenmi\u015f olmas\u0131 gerekti\u011fini belirtir. WordPress, bu ba\u011f\u0131ml\u0131l\u0131klar\u0131 do\u011fru s\u0131rayla y\u00fcklemeye \u00e7al\u0131\u015f\u0131r.<\/p>\n<h3>4. Kaynaklar\u0131m\u0131 neden do\u011frudan HTML'e eklemek yerine enqueue etmeliyim?<\/h3>\n<p>Enqueue mekanizmas\u0131, kaynaklar\u0131n\u0131z\u0131 daha organize, daha g\u00fcvenli ve daha y\u00f6netilebilir hale getirir. \u00c7ak\u0131\u015fmalar\u0131 \u00f6nler, ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00f6netir, s\u00fcr\u00fcm kontrol\u00fcn\u00fc kolayla\u015ft\u0131r\u0131r ve performans optimizasyonlar\u0131 yapman\u0131za olanak tan\u0131r (\u00f6rne\u011fin, betikleri footer'da y\u00fcklemek). Do\u011frudan HTML'e eklemek, kodunuzu daha karma\u015f\u0131k hale getirir ve bak\u0131m\u0131n\u0131 zorla\u015ft\u0131r\u0131r.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Enqueue hook'lar\u0131, WordPress geli\u015ftiricileri i\u00e7in temel ara\u00e7lardan biridir. <code>wp_enqueue_scripts<\/code>, <code>admin_enqueue_scripts<\/code>, <code>login_enqueue_scripts<\/code> ve daha d\u00fc\u015f\u00fck seviyeli <code>wp_print_scripts<\/code>\/<code>wp_print_styles<\/code> hook'lar\u0131n\u0131 anlamak ve do\u011fru ba\u011flamda kullanmak, web sitenizin performans\u0131n\u0131, g\u00fcvenli\u011fini ve y\u00f6netilebilirli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Bu hook'lar\u0131 kar\u0131\u015ft\u0131rmamak i\u00e7in amac\u0131n\u0131z\u0131 netle\u015ftirin, do\u011fru fonksiyonlar\u0131 kullan\u0131n ve ko\u015fullu y\u00fckleme prensiplerini uygulay\u0131n. Bu sayede, hem frontend hem de backend'de kusursuz \u00e7al\u0131\u015fan, optimize edilmi\u015f web siteleri olu\u015fturabilirsiniz.<\/p>\n<p>Unutmay\u0131n, her zaman en iyi pratik, kaynaklar\u0131 yaln\u0131zca gerekti\u011finde ve do\u011fru zamanda y\u00fcklemektir. Bu, hem kullan\u0131c\u0131 deneyimini iyile\u015ftirir hem de sitenizin genel performans\u0131n\u0131 optimize eder. Bu rehberin, enqueue hook'lar\u0131 konusundaki anlay\u0131\u015f\u0131n\u0131z\u0131 derinle\u015ftirdi\u011fini ve pratik uygulamalar\u0131n\u0131zda size yol g\u00f6sterdi\u011fini umuyoruz.<\/p>\n<p>#WordPress #WebGeli\u015ftirme #PHP #Enqueue #Hooks #Frontend #Backend<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/html-css-js-enqueue-hooks-demo\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/html-css-js-enqueue-hooks-demo<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"Web geli\u015ftirme d\u00fcnyas\u0131nda, \u00f6zellikle de WordPress gibi i\u00e7erik y\u00f6netim sistemleriyle \u00e7al\u0131\u015f\u0131rken, kodunuzun belirli noktalarda devreye girmesini sa\u011flamak kritik \u00f6neme sahiptir.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-44875","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan - Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan - Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131\" \/>\n<meta property=\"og:description\" content=\"Web geli\u015ftirme d\u00fcnyas\u0131nda, \u00f6zellikle de WordPress gibi i\u00e7erik y\u00f6netim sistemleriyle \u00e7al\u0131\u015f\u0131rken, kodunuzun belirli noktalarda devreye girmesini sa\u011flamak kritik \u00f6neme sahiptir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-24T06:12:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-24T06:13:06+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan &#8211; Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131\",\"datePublished\":\"2026-09-24T06:12:37+00:00\",\"dateModified\":\"2026-09-24T06:13:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/\"},\"wordCount\":3262,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/\",\"name\":\"Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan - Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-09-24T06:12:37+00:00\",\"dateModified\":\"2026-09-24T06:13:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan &#8211; Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan - Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/","og_locale":"tr_TR","og_type":"article","og_title":"Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan - Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131","og_description":"Web geli\u015ftirme d\u00fcnyas\u0131nda, \u00f6zellikle de WordPress gibi i\u00e7erik y\u00f6netim sistemleriyle \u00e7al\u0131\u015f\u0131rken, kodunuzun belirli noktalarda devreye girmesini sa\u011flamak kritik \u00f6neme sahiptir.","og_url":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-09-24T06:12:37+00:00","article_modified_time":"2026-09-24T06:13:06+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"11 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan &#8211; Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131","datePublished":"2026-09-24T06:12:37+00:00","dateModified":"2026-09-24T06:13:06+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/"},"wordCount":3262,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/","url":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/","name":"Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan - Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-09-24T06:12:37+00:00","dateModified":"2026-09-24T06:13:06+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/enqueue-hooks-dort-kanca-dort-farkli-alan-karistirmamak-icin-ipuclari\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Enqueue Hooks: D\u00f6rt Kanca, D\u00f6rt Farkl\u0131 Alan &#8211; Kar\u0131\u015ft\u0131rmamak \u0130\u00e7in \u0130pu\u00e7lar\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=44875"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44875\/revisions"}],"predecessor-version":[{"id":44876,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44875\/revisions\/44876"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=44875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=44875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=44875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}