2016-05-04 5 views
0

Ich habe eine Seite auf WordPress erstellt und ich habe ein wenig JavaScript hinzugefügt.JS on wordpress

Grundsätzlich in WordPress auf einer Seite, wo Sie Text jeder Art Wetter eingeben können, ist dies HTML oder nur Text sind zwei Registerkarten eine namens "Visual" und "Text". Auf der Registerkarte "Text" fügen Sie HTML und das Skript hinter der Seite hinzu, hier habe ich ein wenig JavaScript hinzugefügt, aber wenn jemand auf diese Seite geht, die ich erstellt habe, wählen Sie den Tab "Visual", der meinen Code unterbricht.

ändert sich dies:

<script> 
function myFunction() { 
    document.getElementById("myDropdown").classList.toggle("show"); 
} 

    window.onclick = function(e) { 
    if (!e.target.matches('.dropbtn')) { 

    var dropdowns = document.getElementsByClassName("dropdown-content"); 
    for (var d = 0; d < dropdowns.length; d++) { 
     var openDropdown = dropdowns[d]; 
     if (openDropdown.classList.contains('show')) { 
     openDropdown.classList.remove('show'); 
     } 
    } 
       } 
    } 
function myFunction() { 
    document.getElementById("myDropdown2").classList.toggle("show"); 
} 

window.onclick = function(e) { 
    if (!e.target.matches('.dropbtn')) { 

    var dropdowns = document.getElementsByClassName("dropdown-content2"); 
    for (var d = 0; d < dropdowns.length; d++) { 
     var openDropdown = dropdowns[d]; 
     if (openDropdown.classList.contains('show')) { 
     openDropdown.classList.remove('show'); 
     } 
    } 
       } 
} 
</script> 

ändert es dazu:

<script>// <![CDATA[ 
function myFunction() { 
    document.getElementById("myDropdown").classList.toggle("show"); 
} 

    window.onclick = function(e) { 
    if (!e.target.matches('.dropbtn')) { 

    var dropdowns = document.getElementsByClassName("dropdown-content"); 
    for (var d = 0; d < dropdowns.length; d++) { 
     var openDropdown = dropdowns[d]; 
     if (openDropdown.classList.contains('show')) { 
     openDropdown.classList.remove('show'); 
     } 
    } 
       } 
} 
function myFunction() { 
    document.getElementById("myDropdown2").classList.toggle("show"); 
} 

window.onclick = function(e) { 
    if (!e.target.matches('.dropbtn')) { 

    var dropdowns = document.getElementsByClassName("dropdown-content2"); 
    for (var d = 0; d < dropdowns.length; d++) { 
     var openDropdown = dropdowns[d]; 
     if (openDropdown.classList.contains('show')) { 
     openDropdown.classList.remove('show'); 
     } 
    } 
       } 
    } 

    // ]]></script> 
+0

Sie könnten besser sein, ein Plugin zu verwenden oder Ihren eigenen Shortcode zu schreiben, um JS einzufügen, da WordPress versuchen wird, dass Sie Script-Tags nicht einfach einfügen, wie Sie gesehen haben. Überprüfen Sie diesen Link haben sie einige Dokumente zu diesem https://codex.wordpress.org/Using_Javascript – wrldbt

Antwort

0

WordPress verhindert speziell, dass Nicht-Admins JavaScript und iFrames über den Editor enthalten. Dies geschieht aus Sicherheitsgründen. Daher können verschiedene Autoren auf Ihrer Website keine Skripts einfügen, die Sie nicht kennen oder denen Sie nicht vertrauen.

Sie können diesen Code in ein benutzerdefiniertes Plugin oder in die Datei functions.php Ihres Themes aufnehmen, um sie zu aktivieren. Es wird nicht empfohlen, aber es funktioniert. Wenn Sie die einzige Person, die Erstellung von Inhalten auf Ihrer Website sind, ist es wahrscheinlich nicht das Ende der Welt, wenn Sie es verwenden:

// allow script & iframe tag within posts 
function allow_post_tags($allowedposttags){ 
    $allowedposttags['script'] = array(
     'type' => true, 
     'src' => true, 
     'height' => true, 
     'width' => true, 
    ); 
    $allowedposttags['iframe'] = array(
     'src' => true, 
     'width' => true, 
     'height' => true, 
     'class' => true, 
     'frameborder' => true, 
     'webkitAllowFullScreen' => true, 
     'mozallowfullscreen' => true, 
     'allowFullScreen' => true 
    ); 
    return $allowedposttags; 
} 
add_filter('wp_kses_allowed_html','allow_post_tags', 1); 

Automattic a plugin for adding JavaScript auf Seiten hat, aber es wird ein paar zusätzliche Schritte hinzufügen vs einfach einfügen Das Skript in.

Idealerweise - und das ist es, was ich wirklich empfehle - würden Sie das Skript in eine Datei schreiben, dann ein benutzerdefiniertes Plugin schreiben oder Code zur functions.php-Datei dieses Themas hinzufügen, die enqueues it through wp_enqueue_script. Die nutzt die WordPress-API und lässt Sie die Vorteile von Plugins zu minify scripts nutzen oder nutzen Sie Dinge wie HTTP/2 Server Push.

0

Sie sollten besser eine separate JS-Datei machen, und es in der Vorlage Seite ... Scheint, wie JS ist nicht unterstützt auf Seitenausgabe ...

+0

Der Code funktioniert auf der Seite in Ordnung, bis jemand in die Seite geht und wechselt zum visuellen Registerkarte, das heißt, wenn es bricht. – JordonNew181

+1

@ JordonNew181 Ja, darüber spreche ich. Diese Funktion wird nicht verwendet, um JS ... – Random

+0

@ JordonNew181 zu verwenden, wenn Sie die Registerkarte Visual nicht benötigen, können Sie sie deaktivieren, und Sie werden nicht auf dieses Problem stoßen. – wrldbt

Verwandte Themen