WordPress:子テーマの親テーマのショートコードを上書きする

ワードプレスAPI

さて、WordPressでのプログラミングに関するいくつかのヒントを共有してからかなりの時間が経ちました。 最近、私はすべてのクライアントにコードをデプロイするベンチに戻ってきました。物事のスイングに戻るのは楽しいことです。 サイト全体での新しいマーケティングホワイトペーパーの統合に気づいたかもしれませんが、それはかなりのことでした。 楽しいプロジェクト!

今日、私は別の問題を抱えていました。 クライアントの多くには、親テーマのショートコードを介して実装されたボタンがあります。 Elevated Marketing SolutionsのパートナーのXNUMX人は、ボタンがサイト全体で優れた召喚状であったため、ボタンでイベント追跡を実行できるかどうか尋ねました。 ショートコードボタンは、ショートコードオプションによって入力される一連のクラスを使用してもう少し雄弁に設計されたアンカータグにすぎません。

このため、イベントを登録するには、アンカーテキストにonclickイベントを追加する必要がありました。 これがどのように見えるかです:

ホームボタン

もちろん、問題は私たちの中にショートコードがあるということです 親テーマ 親テーマを編集したくありません。 また、ショートコードはサイト全体のコンテンツに展開されるため、新しいショートコードを作成する必要もありません。

解決策はかなり巧妙です。 WordPress API ショートコードを削除できます! したがって、子テーマでは、ショートコードを削除してから、新しいショートコード関数に置き換えることができます。

add_action( 'after_setup_theme'、 'calling_child_theme_setup');
関数calling_child_theme_setup(){remove_shortcode( 'old_button_function_in_parent_theme'); add_shortcode( 'button'、 'new_button_function_in_child_theme'); }
function new_button_function_in_child_theme($ atts、$ content = null){...新しいショートコードはここにあります...}

新しいボタン関数(子テーマのfunctions.php)で、ショートコード関数を書き直して、動的イベントonClickイベントを追加しました。 出力は美しく機能し、GoogleAnalyticsで追跡されています。

どう思いますか?

このサイトはAkismetを使用して迷惑メールを減らします。 コメントの処理方法を学ぶ.