概要
elementor/frontend/{$element_type}/before_render
アクションは、Elementorの各エレメントがレンダリングされる前に実行されるフックです。このフックを使用することで、エレメントの出力を動的に変更したり、特定のロジックを実行することができます。主に以下のような機能を実装する際に便利です:
- エレメントのスタイルやクラスを条件に応じて変更する。
- 特定のデータを取得してエレメントに反映させる。
- レンダリングログを記録してデバッグを助ける。
- カスタムスクリプトやスタイルをエレメントに追加する。
- エレメントの表示条件を動的に設定する。
- エレメントに特定のユーザー固有の情報を表示する。
構文
add_action('elementor/frontend/{$element_type}/before_render', 'your_function_name', 10, 2);
パラメータ
$element
: Elementorのエレメントインスタンス。$args
: エレメントに渡される引数。
戻り値
このアクションは値を返しません。主に副作用を伴う処理を実行するために使用されます。
使用可能なプラグインとバージョン
- Elementor: 3.0以上
- WordPress: 5.0以上
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1:エレメントのスタイルを変更する
このサンプルでは、特定の条件に基づいて、エレメントのクラスを変更します。
add_action('elementor/frontend/widget/before_render', function($element) {
if ($element->get_id() === 'your_widget_id') {
$element->add_render_attribute('class', 'custom-class');
}
});
このサンプルは、指定したウィジェットにカスタムクラスを追加しています。
サンプル2:エレメントにデータを追加する
このサンプルでは、カスタムデータをエレメントに追加しています。
add_action('elementor/frontend/widget/before_render', function($element) {
$element->add_render_attribute('data-custom-info', 'your_custom_data');
});
このサンプルは、ウィジェットにカスタムデータ属性を追加しています。
サンプル3:動的に条件を設定する
このサンプルでは、現在のユーザーに基づいてエレメントの表示条件を変更しています。
add_action('elementor/frontend/widget/before_render', function($element) {
if (!is_user_logged_in()) {
$element->set_settings('visible', false);
}
});
このサンプルは、ユーザーがログインしていない場合にウィジェットを非表示にします。
サンプル4:特定のカスタムスクリプトを追加する
このサンプルでは、特定のエレメントに対してカスタムスクリプトを追加しています。
add_action('elementor/frontend/widget/before_render', function($element) {
$element->add_render_attribute('data-script', 'your_custom_script.js');
});
このサンプルは、ウィジェットにカスタムスクリプトを関連付けています。
サンプル5:ロギングを実装する
このサンプルでは、エレメントのレンダリング時にログを記録します。
add_action('elementor/frontend/widget/before_render', function($element) {
error_log('Rendering Element: ' . $element->get_name());
});
このサンプルは、エレメント名をログに記録し、デバッグを助けます。