{"id":2262,"date":"2014-12-24T16:24:14","date_gmt":"2014-12-24T15:24:14","guid":{"rendered":"http:\/\/lloc.de\/?p=2262"},"modified":"2025-09-12T15:24:09","modified_gmt":"2025-09-12T13:24:09","slug":"requirejs-und-wordpress","status":"publish","type":"post","link":"https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/","title":{"rendered":"RequireJS und WordPress"},"content":{"rendered":"<p>Ich bin gerade dabei, \u00fcber die M\u00f6glichkeiten nachzudenken, die mir zur Verf\u00fcgung stehen, um den gewachsenen Best\u00e4nden an JavaScript-Codes Herr zu werden, welche mich in einem zuk\u00fcnftigen Projekt bereits erwarten. Einerseits k\u00f6nnte ich wohl versuchen, die Sourcen in Dateien zu organisieren, sodass man sie dann leicht mit Hilfe von <a href=\"http:\/\/codex.wordpress.org\/Conditional_Tags\">Conditional tags<\/a> laden k\u00f6nnte.<!--more--><\/p>\n<p>Das wird bei einem einfachen Projekt, wo die Komplexit\u00e4t noch nicht sehr hoch ist, vielleicht auch ausreichend sein. Ob ich mir (und vor allem meinem Auftraggeber) damit aber einen Gefallen tue, steht auf einem anderen Blatt. Ich gehe davon aus, dass die Benutzerschnittstellen in der n\u00e4heren Zukunft noch sehr viel mehr an Interaktivit\u00e4t bieten (sollen) und dann auch die Frage nach der Performance schnell in den Fokus r\u00fcckt.<\/p>\n<p>Denkt man an dieser Stelle auch die Zusammenstellung in den Teams bei heutigen Projekten konsequent weiter, f\u00e4llt [mir] folgendes dabei auf:<\/p>\n<p><em>In den Teams wird die Arbeit oft nicht mehr zwischen Webdesignern\/Grafikern und Programmierern aufgeteilt. Jetzt gibt es UX-Designer, Frontend- und Backend-Entwickler und so weiter&#8230;<\/em><\/p>\n<p>Dem ersten Ansatz kommt WordPress bereits durch die Aufteilung von Theme und Plugins entgegen.<\/p>\n<p><strong>Kann man das noch weiter entkoppeln?<\/strong><\/p>\n<p>Ich glaube, dass es sich schnell bezahlt macht, wenn man <a href=\"http:\/\/addyosmani.com\/writing-modular-js\/\">JavaScripten modular organisiert<\/a> und man das Anladen der Applikation bereits einem Loader \u00fcbergibt. Die Auswahl ist hier sicherlich gro\u00df, aber ich bin mir sicher, dass <a href=\"http:\/\/requirejs.org\/\">RequireJS<\/a> nicht die schlechteste Wahl ist. Durch die Art und Weise, <a href=\"https:\/\/ploetner.io\/de\/wordpress-css-js-performant-und-komfortabel-einbinden\/\">wie man JavaScripten in WordPress [richtig] l\u00e4dt<\/a>, muss man allerdings auch dar\u00fcber nachdenken, <a href=\"http:\/\/kaidez.com\/requirejs-wordpress\/#jquery-requirejs-wordpress\">wie der Loader damit umgehen soll<\/a>, wenn jQuery beispielsweise von einem anderen Plugin in den Header geschoben wird.<\/p>\n<p>Eine M\u00f6glichkeit w\u00e4re in meinen Augen, einfach \u00fcber die normale Vorgehensweise bereits in einem Plugin (oder auch in der <em>functions.php<\/em>) einfach zu erkl\u00e4ren, dass <em>RequireJS<\/em> von <em>jQuery<\/em> abh\u00e4ngig ist. In der Applikation <a href=\"https:\/\/github.com\/lloc\/test-wordpress-requirejs\/blob\/master\/js\/test.js\">l\u00f6st man dann Fall entsprechend auf<\/a>. Vielleicht nicht die eleganteste Wahl, aber es funktioniert gut.<\/p>\n<p><em>Das stelle ich mir in etwa so vor:<\/em><\/p>\n<p>Der Filter <em>script_loader_tag<\/em> ist \u00fcbrigens recht neu. Seit der Version 4.1 kann man in WordPress nun auch an dieser Stelle eingreifen und die Ausgabe im HTML steuern. Wer sich das Ganze noch genauer Ansehen will, sollte sich mein <a href=\"https:\/\/github.com\/lloc\/test-wordpress-requirejs\">Testplugin zum Thema<\/a> mal anschauen bzw. gleich clonen\/installieren.<\/p>\n<p><strong>&Uuml;ber Meinungen, Vorschl\u00e4ge und so weiter w\u00fcrde ich mich &#8211; wie immer &#8211; freuen!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich bin gerade dabei, \u00fcber die M\u00f6glichkeiten nachzudenken, die mir zur Verf\u00fcgung stehen, um den gewachsenen Best\u00e4nden an JavaScript-Codes Herr zu werden, welche mich in einem zuk\u00fcnftigen Projekt bereits erwarten. Einerseits k\u00f6nnte ich wohl versuchen, die Sourcen in Dateien zu organisieren, sodass man sie dann leicht mit Hilfe von Conditional tags laden k\u00f6nnte.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"wpf_show_in_dewp_planet_feed":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-2262","post","type-post","status-publish","format-standard","hentry","category-code"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>RequireJS und WordPress - realloc&#039;s asylum<\/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:\/\/ploetner.io\/de\/requirejs-und-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RequireJS und WordPress - realloc&#039;s asylum\" \/>\n<meta property=\"og:description\" content=\"Ich bin gerade dabei, \u00fcber die M\u00f6glichkeiten nachzudenken, die mir zur Verf\u00fcgung stehen, um den gewachsenen Best\u00e4nden an JavaScript-Codes Herr zu werden, welche mich in einem zuk\u00fcnftigen Projekt bereits erwarten. Einerseits k\u00f6nnte ich wohl versuchen, die Sourcen in Dateien zu organisieren, sodass man sie dann leicht mit Hilfe von Conditional tags laden k\u00f6nnte.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"realloc&#039;s asylum\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-24T15:24:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-12T13:24:09+00:00\" \/>\n<meta name=\"author\" content=\"realloc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"realloc\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/requirejs-und-wordpress\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/requirejs-und-wordpress\\\/\"},\"author\":{\"name\":\"realloc\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\"},\"headline\":\"RequireJS und WordPress\",\"datePublished\":\"2014-12-24T15:24:14+00:00\",\"dateModified\":\"2025-09-12T13:24:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/requirejs-und-wordpress\\\/\"},\"wordCount\":406,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\"},\"articleSection\":[\"Code\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ploetner.io\\\/de\\\/requirejs-und-wordpress\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/requirejs-und-wordpress\\\/\",\"url\":\"https:\\\/\\\/ploetner.io\\\/de\\\/requirejs-und-wordpress\\\/\",\"name\":\"RequireJS und WordPress - realloc&#039;s asylum\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/#website\"},\"datePublished\":\"2014-12-24T15:24:14+00:00\",\"dateModified\":\"2025-09-12T13:24:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/requirejs-und-wordpress\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ploetner.io\\\/de\\\/requirejs-und-wordpress\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/requirejs-und-wordpress\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ploetner.io\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RequireJS und WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/ploetner.io\\\/de\\\/\",\"name\":\"realloc's asylum\",\"description\":\"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.\",\"publisher\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ploetner.io\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/#\\\/schema\\\/person\\\/571f8ada841cca782e8001b942e032c8\",\"name\":\"realloc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/8\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\",\"url\":\"https:\\\/\\\/ploetner.io\\\/de\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/8\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\",\"contentUrl\":\"https:\\\/\\\/ploetner.io\\\/de\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/8\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\",\"width\":847,\"height\":848,\"caption\":\"realloc\"},\"logo\":{\"@id\":\"https:\\\/\\\/ploetner.io\\\/de\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/sites\\\/8\\\/2022\\\/11\\\/52602486_10215993351498483_6040822616506236928_n.jpg\"},\"description\":\"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.\",\"sameAs\":[\"https:\\\/\\\/ploetner.io\\\/\"],\"url\":\"https:\\\/\\\/ploetner.io\\\/de\\\/author\\\/realloc\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RequireJS und WordPress - realloc&#039;s asylum","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:\/\/ploetner.io\/de\/requirejs-und-wordpress\/","og_locale":"de_DE","og_type":"article","og_title":"RequireJS und WordPress - realloc&#039;s asylum","og_description":"Ich bin gerade dabei, \u00fcber die M\u00f6glichkeiten nachzudenken, die mir zur Verf\u00fcgung stehen, um den gewachsenen Best\u00e4nden an JavaScript-Codes Herr zu werden, welche mich in einem zuk\u00fcnftigen Projekt bereits erwarten. Einerseits k\u00f6nnte ich wohl versuchen, die Sourcen in Dateien zu organisieren, sodass man sie dann leicht mit Hilfe von Conditional tags laden k\u00f6nnte.","og_url":"https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/","og_site_name":"realloc&#039;s asylum","article_published_time":"2014-12-24T15:24:14+00:00","article_modified_time":"2025-09-12T13:24:09+00:00","author":"realloc","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"realloc","Gesch\u00e4tzte Lesezeit":"2\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/#article","isPartOf":{"@id":"https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/"},"author":{"name":"realloc","@id":"https:\/\/ploetner.io\/de\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8"},"headline":"RequireJS und WordPress","datePublished":"2014-12-24T15:24:14+00:00","dateModified":"2025-09-12T13:24:09+00:00","mainEntityOfPage":{"@id":"https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/"},"wordCount":406,"commentCount":0,"publisher":{"@id":"https:\/\/ploetner.io\/de\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8"},"articleSection":["Code"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/","url":"https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/","name":"RequireJS und WordPress - realloc&#039;s asylum","isPartOf":{"@id":"https:\/\/ploetner.io\/de\/#website"},"datePublished":"2014-12-24T15:24:14+00:00","dateModified":"2025-09-12T13:24:09+00:00","breadcrumb":{"@id":"https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ploetner.io\/de\/requirejs-und-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ploetner.io\/de\/"},{"@type":"ListItem","position":2,"name":"RequireJS und WordPress"}]},{"@type":"WebSite","@id":"https:\/\/ploetner.io\/de\/#website","url":"https:\/\/ploetner.io\/de\/","name":"realloc's asylum","description":"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.","publisher":{"@id":"https:\/\/ploetner.io\/de\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ploetner.io\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":["Person","Organization"],"@id":"https:\/\/ploetner.io\/de\/#\/schema\/person\/571f8ada841cca782e8001b942e032c8","name":"realloc","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/ploetner.io\/de\/wp-content\/uploads\/sites\/7\/sites\/8\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg","url":"https:\/\/ploetner.io\/de\/wp-content\/uploads\/sites\/7\/sites\/8\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg","contentUrl":"https:\/\/ploetner.io\/de\/wp-content\/uploads\/sites\/7\/sites\/8\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg","width":847,"height":848,"caption":"realloc"},"logo":{"@id":"https:\/\/ploetner.io\/de\/wp-content\/uploads\/sites\/7\/sites\/8\/2022\/11\/52602486_10215993351498483_6040822616506236928_n.jpg"},"description":"Software Developer &amp; WordPress Enthusiast | Born in Germany. Reborn in Italy.","sameAs":["https:\/\/ploetner.io\/"],"url":"https:\/\/ploetner.io\/de\/author\/realloc\/"}]}},"_links":{"self":[{"href":"https:\/\/ploetner.io\/de\/wp-json\/wp\/v2\/posts\/2262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ploetner.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ploetner.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ploetner.io\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ploetner.io\/de\/wp-json\/wp\/v2\/comments?post=2262"}],"version-history":[{"count":2,"href":"https:\/\/ploetner.io\/de\/wp-json\/wp\/v2\/posts\/2262\/revisions"}],"predecessor-version":[{"id":6831,"href":"https:\/\/ploetner.io\/de\/wp-json\/wp\/v2\/posts\/2262\/revisions\/6831"}],"wp:attachment":[{"href":"https:\/\/ploetner.io\/de\/wp-json\/wp\/v2\/media?parent=2262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ploetner.io\/de\/wp-json\/wp\/v2\/categories?post=2262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ploetner.io\/de\/wp-json\/wp\/v2\/tags?post=2262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}