{"id":233775,"date":"2023-02-22T19:12:00","date_gmt":"2023-02-22T16:12:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233775"},"modified":"2022-11-11T12:19:43","modified_gmt":"2022-11-11T09:19:43","slug":"koik-wordpressis-stiilide-ja-skriptide-lisamise-kohta","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/koik-wordpressis-stiilide-ja-skriptide-lisamise-kohta\/","title":{"rendered":"K\u00f5ik WordPressis stiilide ja skriptide lisamise kohta"},"content":{"rendered":"\n<p>WordPress pakub mitut meetodit stiilide ja skriptide lisamiseks kasutajaliidese ja administraatori jaoks, nii failide lisamiseks kui ka muutujate\/v\u00e4ljundite otse v\u00e4ljastamiseks. See postitus k\u00e4sitleb \u00fcksikasjalikult koodin\u00e4iteid selle kohta, kuidas WordPressi skripte ja stiile \u00f5igesti lisada.<\/p>\n<p>Skripte ja stiile saab registreerida ja j\u00e4rjekorda panna, m\u00e4\u00e4rates unikaalsed k\u00e4epidemed (n\u00e4lkjas sarnased ID-d), mis v\u00f5imaldab WordPressil k\u00f5rvaldada duplikaadid (nt mitu jQuery teeki) ja k\u00e4sitleda s\u00f5ltuvusi (millist laadi v\u00f5i skripti laadida enne seda ja seda) .<\/p>\n<p>Kui stiilide v\u00f5i skriptide registreerimiseks pole erilist vajadust, saate need kohe j\u00e4rjekorda panna, j\u00e4ttes registreerimise vahele. Samuti on k\u00e4epidemele viidates v\u00f5imalik stiile ja skripte (<code>wp_dequeue_script<\/code>ja) kustutada v\u00f5i j\u00e4rjekorrast eemaldada. <code>wp_dequeue_style<\/code>Tavaliselt aitab see konksu prioriteedile suurema arvu lisamisest (pannes selle jooksma p\u00e4rast konksu, kus \u00fcksused olid j\u00e4rjekorda pandud).<\/p>\n<p>PS: Gutenbergi stiilide ja skriptide lisamist (nii administraatori- kui ka esiserva plokid) selgitatakse minu postituses <a href=\"http:\/\/localhost\/awhitepixel\/blog\/gutenberg-the-basics\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gutenberg: The Basics<\/a>.<\/p>\n<h2>Skriptide ja stiilide lisamine kasutajaliidesele<\/h2>\n<p>Stiilide ja skriptide lisamiseks ainult kasutajaliidesele kasutage konksu <code>wp_enqueue_scripts<\/code>. Hooki nimest hoolimata kasutatakse seda nii skriptide kui ka stiilide jaoks. Siin on n\u00e4ide stiilitabeli ja javascripti faili j\u00e4rjekorda asetamisest teemas:<\/p>\n<pre><code>add_action('wp_enqueue_scripts', function() {\n    \/\/ Styles\n    wp_enqueue_style('main-style', get_stylesheet_directory_uri().'\/style.css', [], '1.0');\n\u00a0\n    \/\/ Scripts\n    wp_enqueue_script('main-script', get_stylesheet_directory_uri().'\/assets\/js\/main.js', ['jquery'], '', true);\n});<\/code><\/pre>\n<p>Kolmas argument nii stiilide kui ka skriptide puhul on s\u00f5ltuvustega massiiv. N\u00e4iteks skriptide puhul v\u00f5iksite laadida jQuery teegi enne skriptifaili. <strong>M\u00e4rkus<\/strong>. WordPressi installid on kaasas hunniku tavalisi skriptiteeke (nt jQuery, jQuery kasutajaliides, selgroog ja alakriips). Kuni lisate <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_enqueue_script\/#default-scripts-included-and-registered-by-wordpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">m\u00f5ne nendest k\u00e4epidemetest<\/a> oma skripti enqueue_script s\u00f5ltuvusena, paneb WordPress need j\u00e4rjekorda, nii et te ei pea nende teekide jaoks oma faile lisama.<\/p>\n<p>Viies argument skriptide puhul on see, kas skript tuleks laadida sildi l\u00f5pus <code>&lt;body&gt;<\/code>(jaluses), mitte <code>&lt;head&gt;<\/code>m\u00e4rgendi sees.<\/p>\n<p>Pluginas kasutamiseks peate kohaliku faili URL-i hankimiseks kasutama muid meetodeid, n\u00e4iteks <code>plugin_dir_url(__FILE__)<\/code>.<\/p>\n<h2>Skriptide ja stiilide lisamine administraatorile<\/h2>\n<p>WordPress pakub veel \u00fchte konksu <code>admin_enqueue_scripts<\/code>stiilide ja skriptide lisamiseks ainult administraatorile. Kasutage skriptide ja stiilide registreerimiseks, j\u00e4rjekorda seadmiseks ja lokaliseerimiseks samu meetodeid nagu \u00fclal:<\/p>\n<pre><code>add_action('admin_enqueue_scripts', function() {\n    global $pagenow, $post_type;\n    \/\/ Example: $hook == 'edit.php'\n    \/\/ Example: $post_type == 'post'\n    \/\/ wp_enqueue_style or wp_enqueue_script\n});<\/code><\/pre>\n<h2>Skriptide ja stiilide lisamine sisselogimislehele<\/h2>\n<p>Kuna kumbki \u00fclaltoodud konks ei ilmu administraatori sisselogimisekraanile, pakub WordPress selleks eraldi konksu, <code>login_enqueue_scripts<\/code>.<\/p>\n<pre><code>add_action('login_enqueue_scripts', function() {\n    \/\/ wp_enqueue_style or wp_enqueue_script\n});<\/code><\/pre>\n<h2>Javascripti muutujate v\u00e4ljastamine<\/h2>\n<p>Javascripti muutujate v\u00e4ljastamiseks (nt teede, t\u00f5lgitud stringide v\u00f5i muude muutujate hankimiseks v\u00f5ite kasutada faili wp_localize_script. See funktsioon n\u00f5uab j\u00e4rjekorda pandud skripti k\u00e4epidet. Teine parameeter oleks muutuja nimi ja kolmas selle v\u00e4\u00e4rtus. V\u00e4\u00e4rtus v\u00f5ib olla massiiv, n\u00e4iteks :<\/p>\n<pre><code>add_action('wp_enqueue_scripts', function() {\n    \/\/ wp_enqueue_script('main-script');  \/\/ Must exist!\n    $variable_to_js = [\n        'ajax_url' =&gt; admin_url('admin-ajax.php')\n    ];\n    wp_localize_script('main-script', 'Theme_Variables', $variable_to_js);\n});<\/code><\/pre>\n<p>Skripti sees on teil juurdep\u00e4\u00e4s edastatud muutujatele, n\u00e4iteks:<\/p>\n<pre><code>jQuery(document).ready(function($) { \n    console.log(Theme_Variables.ajax_url);\n});<\/code><\/pre>\n<p>Selles konksus p\u00e4\u00e4sete juurde globaalsetele muutujatele <code>$pagenow<\/code>ja <code>$post_type<\/code>saate t\u00e4psemalt m\u00e4\u00e4rata, kuhu soovite oma stiilid ja skriptid j\u00e4rjekorda panna.<\/p>\n<h2>Tekstisiseste stiilide v\u00e4ljastamine<\/h2>\n<p>Kui teil on vaja v\u00e4ljastada tekstisiseseid stiile, n\u00e4iteks kohandajas seadistatud teemamuutujate jaoks (nt kasutades <code>get_theme_mod<\/code>), saate need v\u00e4ljastada <code>wp_add_inline_style<\/code>funktsiooni abil. See toimib \u00fcsna sarnaselt Javascripti muutujate v\u00e4ljastamisele, milles peate esitama j\u00e4rjekorda pandud stiilik\u00e4epideme:<\/p>\n<pre><code>add_action('wp_enqueue_scripts', function() {\n    \/\/ wp_enqueue_style('main-style');  \/\/ Must exist!\n\u00a0\n    $color = get_theme_mod('my-custom-color');  \/\/ e.g. #FF0000\n    $custom_css = \"\n        body {\n            background: {$color};\n        }\";\n        wp_add_inline_style('main-style', $custom_css);\n});<\/code><\/pre>\n<h2>As\u00fcnkrooniliste siltide lisamine skriptidele<\/h2>\n<p>Kahjuks pole otsest funktsiooni ega filtrit, <code>async<\/code>mida teie skriptim\u00e4rgenditele lisada, kuid me saame selle saavutada, manipuleerides stringiga, mida WordPress kasutab k\u00f5igi j\u00e4rjekorda pandud skriptide skriptim\u00e4rgendite v\u00e4ljastamiseks (pidage meeles, et m\u00e4\u00e4rake oma skript selle k\u00e4epideme j\u00e4rgi):<\/p>\n<pre><code>add_filter('script_loader_tag', function($tag, $handle, $src) {\n    if ('main-script' != $handle) {\n        return $tag;\n    }\n    return str_replace('&lt;script', '&lt;script async', $tag);\n}, 11, 3);<\/code><\/pre>\n<h2>Kasulikud dokumentatsioonilingid<\/h2>\n<ul>\n<li><a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_enqueue_scripts<\/a> (konks)<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/admin_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">admin_enqueue_scripts<\/a> (konks)<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/login_enqueue_scripts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">login_enqueue_scripts<\/a> (konks)<\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_enqueue_style\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_enqueue_style<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_dequeue_style\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_dequeue_style<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_enqueue_script\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_enqueue_script<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_dequeue_script\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_dequeue_script<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_localize_script\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_localize_script<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_add_inline_style\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_add_inline_style<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>See postitus k\u00e4sitleb \u00fcksikasjalikult koodin\u00e4iteid selle kohta, kuidas WordPressi skripte ja stiile \u00f5igesti lisada, nii faile kui ka v\u00e4ljundmuutujaid.<\/p>\n","protected":false},"author":1,"featured_media":224083,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,718,833,894,1110,842,802,802,833,926,926,863,863],"tags":[1165],"class_list":["post-233775","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-juhend-algajatele","category-n-a","category-opetused","category-php-4","category-teemasid","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233775","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=233775"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233775\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/224083"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=233775"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=233775"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=233775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}