2016-05-04 10 views
0

私はwordpressでページを作成しました。私はいくつかのJavaScriptを追加しました。JS on wordpress

基本的に任意の並べ替えの天気予報のテキストを入力することができますページでは、これはHTMLまたは単に "ビジュアル"と "テキスト"と呼ばれる2つのタブです。 「テキスト」タブは、HTMLとそのページの背後にあるスクリプトを追加する場所です。これはJavaScriptを追加した場所ですが、誰かがこのページに行くと「Visual」タブを作成して選択するとコードが破損します。

これを変更します。

<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> 

はこれにそれを変更します。

<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

JSを挿入するには、プラグインを使用するか、独自のショートコードを書く方がよいかもしれません。WordPressは、見たとおりにスクリプトタグを挿入しないようにしてください。このリンクを確認するには、このhttps://codex.wordpress.org/Using_Javascript専用のドキュメントがあります。 – wrldbt

答えて

0

WordPressは、非管理者がエディタでJavaScriptとiframeを含むことを特に防ぎます。これはセキュリティ上の理由から行われているため、サイト上のさまざまな作者は、わからない、または信頼できないスクリプトに貼り付けることはできません。

このコードをカスタムプラグインまたはテーマのfunctions.phpファイルに含めて、このコードを有効にすることができます。お勧めしませんが、機能します。

// 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); 

オートマティックは、サイトへのa plugin for adding JavaScriptを持っていますが、それだけで貼り付け対のカップル余分なステップを追加するために起こっている:あなたのサイト上のコンテンツを作成する唯一の人であれば、あなたがそれを使用する場合、それはおそらく、世界の終わりではありません

これは私が本当にお勧めするものです。スクリプトをファイルに入れてから、カスタムプラグインを作成するか、テーマのfunctions.phpファイルenqueues it through wp_enqueue_scriptにコードを追加します。 WordPress APIを活用して、プラグインを利用してminify scriptsにしたり、HTTP/2 Server Pushのようなものを利用することができます。

0

あなたはより良い別の.jsファイルを作成し、あなたのテンプレートページに含める必要があります... JSがあるように思えますページ編集でサポートされていません...

+0

コードは、誰かがページに入り、破損したときにビジュアルタブに切り替えるまで、ページ上で正常に機能します。 – JordonNew181

+1

@ JordonNew181ええ、それは私が言っていることです。この機能はJSを使用するように作られていません... – Random

+0

@ JordonNew181ビジュアルタブが必要ない場合は無効にすることができ、その問題は発生しません。 – wrldbt

関連する問題