WordPressでは、短いコードはデフォルトでは記事やページでのみ使用でき、ウィジェットでは使用できません。ただし、この関数は、do_shortcode()
機能を使用して有効にすることができ、テキストウィジェットが既存のショートコードを解析できるようにします。
テキストウィジェットのショートコードWordPressはデフォルトで複数のウィジェットを提供します。テキストウィジェットを使用すると、任意のテキストをウィジェットまたはHTMLコードに追加できます。これは、このウィジェットでJavaScriptコードを使用することもできるため、非常に強力です。ただし、サーバーに保存されているデータにアクセスするPHPスクリプトなど、さらに多くの機能が必要な場合、このウィジェットはデフォルトで役立ちません。
記事に似ています。そのため、記事のように、ショートコードを使用してやりたいことを何でもできるようにしたいのです。これを行うには、
フィルターを使用できます。このフィルターは、テキストウィジェットのコンテンツの変更を可能にするために使用されます。ここで使用して、このウィジェットのショートコードを解析するようにWordPressに依頼します。
widget_text
WordPressでの短いコードの解析は、
フィルターのコールバック関数として直接使用できることを意味します。 do_shortcode()
widget_text
次のコードは、プラグインファイルまたはテーマの
functions.php
テキストウィジェットに入力する既存のショートコードは、解析されます。
<?php add_filter('widget_text', 'do_shortcode'); ?>
新しいショートコードウィジェットを作成
あるいは、独自のウィジェットを作成できます。デフォルトの「テキスト」ウィジェットはうまく機能するため、次のコード(ファイルにある)からコードを単純に調整できます。独自のプラグインを作成し、コアWordPressファイルを変更しないでください。
/wp-includes/default-widgets.php
あまり変える必要はありません。最初に変更するのは、クラスの名前です。私はそれを名前にすることを選択しました
<?php class WP_Widget_Text extends WP_Widget { public function __construct() { $widget_ops = array('classname' => 'widget_text', 'description' => __('Arbitrary text or HTML.')); $control_ops = array('width' => 400, 'height' => 350); parent::__construct('text', __('Text'), $widget_ops, $control_ops); } // ... (其余代码与原文相同) ... } ?>
WP_Widget_Shortcodes
変更する必要があるもう1つの場所は、WordPressがウィジェットを表示する方法を説明する
<?php public function __construct() { $widget_ops = array('classname' => 'widget_shortcodes', 'description' => __('Arbitrary text or HTML with shortcodes.')); $control_ops = array('width' => 400, 'height' => 350); parent::__construct('shortcodes', __('Shortcodes'), $widget_ops, $control_ops); } ?>
フィルターに削除し、このコンテンツにwidget()
関数を適用します。 $text
<?php add_filter('widget_text', 'do_shortcode'); ?>
その後、他のウィジェットと同様に追加できるように、ウィジェットを登録する必要があります。これは、WordPressがデフォルトのウィジェットを登録するとトリガーされるwidgets_init
操作を通じて実行できます。
<?php class WP_Widget_Text extends WP_Widget { public function __construct() { $widget_ops = array('classname' => 'widget_text', 'description' => __('Arbitrary text or HTML.')); $control_ops = array('width' => 400, 'height' => 350); parent::__construct('text', __('Text'), $widget_ops, $control_ops); } // ... (其余代码与原文相同) ... } ?>
利用可能なウィジェットのリストにウィジェットを見つけることができます。互換性のある領域に追加でき、使用しているショートコードについて説明します。
結論
上記のように、ウィジェットのショートコードを有効にすることは複雑ではありませんが、注意する必要があります。実際、すべてのショートコードがウィジェットの場所を表示するのに適しているわけではありません。短いコードに固定幅がある場合、それは問題になる可能性があります。デフォルトのテキストウィジェットで使用する変更は最小限であることに注意してください。ウィジェットをカスタマイズする場合は、他のものを変更できます。
(以下は、元のFAQパーツの擬似オリジナル作業です。式メソッドは、コンテンツの一貫性を維持しながら調整されます) WordPressウィジェットで短いコードを使用することについてのFAQ
WordPressウィジェットで短いコードを使用する目的は何ですか?
なぜ私のショートコードがウィジェットで動作しないのですか? []
ウィジェット用の独自のショートコードを作成するには、テーマのfunctions.php
ファイルにカスタム関数を追加する必要があります。この関数は、ショートコードの関数を定義する必要があります。関数を定義した後、add_shortcode()
関数を使用して新しいショートコードを作成できます。
テキスト入力を受け入れるウィジェットでは、短いコードを使用できます。これには、テキストウィジェット、カスタムHTMLウィジェット、その他のウィジェットが含まれます。ただし、すべてのウィジェットがショートコードをサポートするわけではありません。
do_shortcode
do_shortcode
add_shortcode
以上がクイックヒント:WordPressでウィジェット内でショートコードを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。