{"id":228792,"date":"2022-10-30T13:50:00","date_gmt":"2022-10-30T10:50:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228792"},"modified":"2022-11-09T04:17:28","modified_gmt":"2022-11-09T01:17:28","slug":"wordpressi-pistikprogrammide-liidesed-varadega-toeoetamine","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-pistikprogrammide-liidesed-varadega-toeoetamine\/","title":{"rendered":"WordPressi pistikprogrammide liidesed: varadega t\u00f6\u00f6tamine"},"content":{"rendered":"\n<p>\u00dcks objektorienteeritud programmeerimisega t\u00f6\u00f6tamise eeliseid on v\u00f5ime m\u00e4\u00e4ratleda liideseid nii, et neid liideseid rakendavatel klassidel on ranged funktsioonid, mida nimetatud klassid peavad rakendama.<\/p>\n<p>See on igatahes klassiliidese <a href=\"https:\/\/stackoverflow.com\/a\/1022066\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">m\u00e4\u00e4ratlus :<\/a><\/p>\n<blockquote>\n<p>Liides on leping, mis m\u00e4\u00e4rab meetodite, v\u00e4ljade ja atribuutide komplekti, mis on saadaval mis tahes rakendusobjektil<\/p>\n<\/blockquote>\n<p>Kuidas see aga v\u00e4lja n\u00e4eb, kui meie eesm\u00e4rk on luua nimeruumiga lahendus WordPressi pistikprogrammide liideste (v\u00f5i liidese) lisamiseks klassile, mida saab kasutada stiilitabelite v\u00f5i JavaScripti failide j\u00e4rjestamiseks?<\/p>\n<h2>WordPressi pistikprogrammide liidesed: varad<\/h2>\n<p>Selle postituse jaoks eeldame, et me m\u00e4\u00e4ratleme liidese, mida kasutatakse WordPressi haldusalas. See t\u00e4hendab, et loome liidese, mida kasutatakse laaditabelite ja JavaScripti failide j\u00e4rjestamiseks.<\/p>\n<p>Peame lisama j\u00e4rgmise:<\/p>\n<ul>\n<li>nimeruum, mida saab kasutada kogu projekti v\u00e4ltel,<\/li>\n<li>funktsioon klassi initsialiseerimiseks,<\/li>\n<li>funktsioon varade tegelikuks j\u00e4rjekorda seadmiseks.<\/li>\n<\/ul>\n<p>Ja kuna see on piisavalt \u00fcldine, et seda saaks kasutada JavaScripti ja stiilitabelite jaoks, olen otsustanud nimetada seda lihtsalt <strong>Varaks<\/strong>.<\/p>\n<p>L\u00f5pptulemus v\u00f5ib v\u00e4lja n\u00e4ha umbes <a href=\"https:\/\/gist.github.com\/tommcfarlin\/30521dcf0c493283327bf9162c7b9a35#file-00-interface-asset-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">selline<\/a> :<\/p>\n<pre><code>&lt;?php\n\nnamespace AcmeAdminInterfaces;\n\ninterface Asset {\n\n    public function init();\n    public function enqueue();\n}\n<\/code><\/pre>\n<p>J\u00e4rgmiseks peame liidese klassiga tegelikult <a href=\"https:\/\/gist.github.com\/tommcfarlin\/30521dcf0c493283327bf9162c7b9a35#file-01-javascript-asset-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">rakendama .<\/a> See peaks olema suhteliselt lihtne, kuna oleme m\u00e4\u00e4ranud meetodid, mida tuleb rakendada.<\/p>\n<p>Pange t\u00e4hele, et pakun paar atribuuti, mis on m\u00e4\u00e4ratud klassi konstruktoris. Need on selle klassi spetsiifilised ja muudavad faili tegeliku j\u00e4rjekorda panemise pisut lihtsamaks.<\/p>\n<pre><code>&lt;?php\n\nnamespace AcmeAdmin;\nuse AcmeAdminInterfaces;\n\nclass JavaScript_Assets implements InterfacesAsset {\n\n    private $assets_dir;\n\n    private $js_dir;\n\n    public function __construct() {\n\n        $this-&gt;assets_dir = trailingslashit(\n            plugin_dir_url( __FILE__ ). 'assets'\n        );\n\n        $this-&gt;js_dir = trailingslashit( $this-&gt;assets_dir. 'js' );\n    }\n\n    public function init() {\n\n        add_action(\n            'admin_enqueue_scripts',\n            array( $this, 'enqueue') );\n    }\n\n    public function enqueue() {\n\n        wp_enqueue_script(\n            'toggle-admin-notices',\n            $this-&gt;js_dir. 'admin.js',\n            array( 'jquery' ),\n            false\n        );\n    }\n}\n<\/code><\/pre>\n<p>M\u00f5ned asjad, mida \u00fclaltoodud koodi kohta t\u00e4hele panna:<\/p>\n<ul>\n<li>see kasutab\u00a0 m\u00e4rks\u00f5na <strong>use<\/strong>, et PHP teaks, et t\u00f6\u00f6tame <strong>Asset<\/strong> liidesega,<\/li>\n<li>Lisasin nime ette <strong>JavaScripti<\/strong>, et oleks selge, millist t\u00fc\u00fcpi varaga ma t\u00f6\u00f6tan.<\/li>\n<\/ul>\n<p>L\u00f5puks, liidest rakendava klassi eksemplarimiseks <a href=\"https:\/\/gist.github.com\/tommcfarlin\/30521dcf0c493283327bf9162c7b9a35#file-02-class-instantiation-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tehke<\/a> lihtsalt j\u00e4rgmist:<\/p>\n<pre><code>&lt;?php\n\n$assets = new AdminJavaScript_Assets();\n$assets-&gt;init();\n<\/code><\/pre>\n<p>Muidugi, see konkreetne n\u00e4ide on lihtne ja ma j\u00e4tsin tavalised koodikommentaarid v\u00e4lja, kuid see on \u00fcldiselt loetavuse huvides. Kui soovite midagi sellist tegevuses n\u00e4ha, vaadake \u00fcle selle l\u00e4htekood<\/p>\n<p>Kui soovite midagi sellist tegevuses n\u00e4ha, vaadake \u00fcle <a href=\"https:\/\/github.com\/tommcfarlin\/toggle-admin-notices\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">selle konkreetse pistikprogrammi<\/a> l\u00e4htekood .<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kuidas see v\u00e4lja n\u00e4eb, kui meie eesm\u00e4rk on luua klassi jaoks WordPressi pistikprogrammide liideste jaoks lahendus, mida saab kasutada varade j\u00e4rjekorda paigutamiseks?<\/p>\n","protected":false},"author":1,"featured_media":220968,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,916,842,863],"tags":[1165],"class_list":["post-228792","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-muud","category-opetused","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228792","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=228792"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228792\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/220968"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=228792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=228792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=228792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}