web-dev-qa-db-ja.com

カスタムウィジェットを挿入するようにテーマを変更しますか?

私はWordPressとテーマにはまったく慣れていませんが、サーバー管理者でプログラミング経験があります。

カスタマイズしたいテーマをダウンロードしました。フロントページにHTMLウィジェットを配置して、ウィジェットの伝統的な方法で簡単にHTMLをプラグインできるようにします。

私の最初のアイデアは、JavaScriptを使って特定の領域にフックして追加機能を挿入することでしたが、WordPressエコシステムを学びたいのであれば、これは理想的とは言えません。

テーマで、私のカスタムテーマのフロントページにHTMLウィジェット(ダッシュボードのどこかで編集できる)を単純に追加するための最良の方法は何ですか。 WordPressのやり方、つまりこれを行うにはいくつかの 'ハックイ'な方法があると思いますが、論理的な長期的な解決策のようには思えません。

多くのおかげで、テーマなどの必要に応じてより多くの詳細を提供することができます.

また、既存のテーマを変更するには、CSS/JSをページごとのスクリプト+スタイルプラグインをインストールし、そこから追加/変更するか、またはより伝統的なWordPressの方法がある最善の方法です。

1
Cacoon

尋ねられたように質問はかなり広いです、それで私は広い答えを提供します。

元のテーマが独自のフックを提供していない限り(これは問題外ではありません。その場合は、そのドキュメントを参照する必要があります)、これを行う最善の方法は 子テーマを作成することです。 、関連するテンプレートを子テーマにコピーし、そこで変更を加えます。

そのテンプレートで編集可能なHTMLウィジェットを作成する方法に関しては、いくつかのオプションがあります。

  • Functions.phpの register_sidebar() を使ってウィジェット領域を登録し、 dynamic_sidebar() を使ってテンプレートに出力します。その後、カスタムHTMLウィジェットを使ってHTMLを追加できます。
  • Customize API を使用して、HTML用のフィールドをカスタマイザに追加し、 get_theme_mod() を使用してテンプレートに出力します。
  • HTML用の カスタムフィールド を追加し、 get_post_meta() を使用してテンプレートに出力します。

最終的には、厳密なアプローチは元のテーマがどのように構築されたかによってほぼ完全に下がります。一部のテーマは子テーマではうまく機能しないため、そのように変更を加えようとしている問題に遭遇するかもしれませんし、他のテーマはこのような変更を加えるための独自のフックまたはAPIを提供するかもしれません。そのコードを見ずに言うのは不可能です。最初のステップとして、元のテーマの開発者に連絡することをお勧めします。

2
Jacob Peattie