2016-05-07 9 views
0

私はWordpressのウェブサイトを構築するプロセスの早い段階で貧弱な決断を下しました。そうすることで、私の仕事は非常に面倒なものになりました。Javascriptボタンhrefインジェクション

基本的には、1300ページ以上のサイトが作成されました。そのうち約800個はWYSIWYGエディタ上のリンクではないため、すべてのページで一意です。明るい側面?彼らはすべて同じクラスを共有しています。だから私は、私がボタンに関連付けられたタグの内側のクラスをターゲット可能性が考えていたが、これは私が得たものである:それはであるために、私は努力でfooter.phpファイルにこれを配置した

<script> 
document.getElementByClassName('et_pb_button et_pb_button_0 et_pb_module et_pb_bg_layout_light').href = "www.example.org/contact/"; 
</script> 

すべてのページで実行されますが、動作していないようです。私はここで何かを見逃しましたか?

私はphpやJQueryを含む他のソリューションに反対していません。このボタンは、迷惑な#ではなくページにリンクするだけです。

+0

ページがレンダリングされたら、実際に実行するために何かにラップする必要があると思われます。window.onload = function(){//あなたのコード} – dmoo

+0

getElementsByClassNameでsが見つからない – Damon

+0

Iveは両方の提案を試しましたが、それでも反応しない:(私は、クエリをフォーマットする方法を私はJavascript関数法の後にこれをみます – Zaeo

答えて

0

WYSIWYGエディタは、このボタンを特定の方法で保存します。私はすべてのページにスクリプトを置くことはお勧めしませんが、ちょうどあなたのデータベースを照会する小さなPHPスクリプトを作成し、SQLクエリの魔法で値を更新してください。

データベースへの接続を作成します。データベースから適切な行を選択します。ボタンと一致する正規表現を見つけ、preg_replace(..)を使用してそのボタンを作業ボタンに置​​き換えます。後で正規表現が一致しないことを確認してください。値を更新してから、続行してください。

スクリプトがタイムアウトした場合、既に変更したボタンで正規表現が一致しなくなるため、スクリプトをもう一度実行することができます。

これは少し汚れていますが、手作業で編集するよりもはるかに簡単ですし、エラーが発生したためにすべてのページでスクリプトを実行するよりはるかに簡単です。

+0

、私は最初のjavascriptのメソッドをしようとせず、このメソッドを使用する許可を拒否された。 – Zaeo

0

あなたは

$( 'et_pb_button.et_pb_button_0.et_pb_module.et_pb_bg_layout_light。')のような属性を追加しようとすることができるのattr( "HREF"、 "www.example.org/contact/")。

+0

? '「 ? 私は完全なJavascriptの初心者ですので、事前に申し訳ありません。 – Zaeo

関連する問題