function.phpにコピペするだけ。wordpressでonclick属性などが消える問題を解決。

以前、記事内にonclick属性を使ったリンク付きのボタンを配置しようと思ったのにWPの仕様で書いても書いても消されてイライラしたのでメモ。

この現象はビジュアルエディターとテキストエディターを切り替えた時に起こるらしいのですが、この他にもいろいろな属性が記事内で消えてしまうというのは問題視されている模様。

情報はいろいろとありましたが、今回はfunction.phpに追記することで解決する方法を選択しました。

解決方法

今回はこちらの記事の「TinyMCE」の部分を参考にさせていただきました。

基本的にはこの記事の通りfunction.phpにコピペしてもらえばいいのですが、今回はonclick属性を消えないようにしたかったのでこんな感じに追記。

 

元記事の加え自分で追記したの【+button[onClick],+input[onClick]】の部分。これでボタンにonclickでURLを入れても消えてしまうことはありません。

めでたしめでたし。

6 件のコメント

  • この対処法は非常に助かりました。
    ありがとうございます!

    ただ他のテーマは問題なく追記できたのですが
    LIONブログだけはエラーが出てしまいます。

    何かご存じの情報はお持ちでしょうか?

    不躾で申し訳ありませんがよろしくお願いいたします。

    • お役に立てたようで幸いです。
      エラーが出てるとのことですが、どの画面でどのようなエラーが出ていますでしょうか?
      LIONというテーマは使ったことがありませんが、エラーメッセージわかれば解決策の提案はできるかもしれません。

      • お世話になります。送信押し忘れたような気がしたので再度送らせて頂きます。

        最終行の手前「?>」の上に入れた場合下記のアラートが出ます。

        wp-content/themes/lionblog/functions.php ファイルの6238行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。
        Cannot redeclare custom_editor_settings() (previously declared in wp-content/themes/lionblog/functions.php:4096)
        非表示

        「?>」の後ろ、つまり最終行に入れた場合は
        「ファイルの編集に成功しました」とは出るものの、コピペした文字列がウェブ上で見ると最上部に表示されてしまいます。

        下記のようなものがたくさんあります。
        何かお判りになる情報はありましたでしょうか

        //////////////////////////////////////////////////
        //ダッシュボードにオリジナルウィジェットを追加
        //////////////////////////////////////////////////

        お手数をおかけし申し訳ございませんがよろしくお願いいたします。

        • 単純な記述ミスな気がします。
          改行やスペースなどで元ファイル含め何かに問題ありそうですので、コードエディターソフトなどで前後の改行などを一回削除したあと、改めて改行の上追加するとうまくいくかもしれません。

          • ありがとうございます。

            不慣れながら仰られた通りにやって見ましたが、改善の兆候はなさげでした。
            (あるいはきちんとできていない可能性も否定はできません)

            とりあえず無しでもそれなりのサイトにはなりますので、
            当面我慢して使うかテーマを変えるかですね。

            もし何か明らかに有効な方法が見つかりましたらまたご教示いただければ幸いです。
            お手数をおかけしありがとうございました。

      • ご回答ありがとうございます。

        エラーと言いますか、挿入する場所によって違いまして、
        途中に入れると
        「wp-content/themes/lionblog/functions.php ファイルの6221行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。
        Cannot redeclare custom_editor_settings() (previously declared in wp-content/themes/lionblog/functions.php:4097)」
        また、
        「何かうまくいかなかったようです・・・・・・FTPでアップロードしてください」
        と出る事もあります。

        最終行の?>の下に入れると「ファイルの編集に成功しました」と出ますが、
        サイトを表示した際とダッシュボードでも一番上に追記した文章が出てきてしまってます。

        記述内容ではなく、追記場所か追記方法の問題かとは思われますが、いかんせん知識不足なもので。

        ちなみにfunction.phpの各文章の頭に
        //////////////////////////////////////////////////
        //ダッシュボードにオリジナルウィジェットを追加
        //////////////////////////////////////////////////
        というようなものが入っています。

        如何なものでしょうか?

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です