Зацепить элементор виджетом?
Я пытаюсь найти ловушку, которая позволит мне добавить свой собственный код в существующий виджет elementor. Например, у них есть "виджет постов", который позволяет отображать список постов в зависимости от установленных вами условий / категорий.
Я хотел бы добавить свой собственный код в этот "блок", но не могу найти какие-либо конкретные хуки для подключения к существующему виджету (в частности, виджет сообщений)
Любая помощь приветствуется. Есть ли крюк для этого? Если нет, то какой мой следующий лучший вариант?
Спасибо!
0 ответов
Это зависит от того, чего вы хотите достичь, но в целом есть зацепки.
Я не уверен насчет виджета сообщений, но могу показать вам несколько примеров в целом.
Если вы хотите добавить элементы управления в виджет, используйте это (дополнительную информацию об именах и прочем вы можете найти в их документации https://developers.elementor.com/add-controls-to-widgets/)
add_action( 'elementor/element/heading/section_title/before_section_end', function( $element, $args ) {
$element->add_control( 'title_color',
[
'label' => 'Color' ,
'type' => \Elementor\Controls_Manager::SELECT,
'default' => 'red',
'options' => [
'red' => 'Red',
'blue' => 'Blue',
],
'section' => 'section_title',
'tab' => 'content',
]
);
}, 10, 2);
виджет в примере - это заголовок. Вы можете узнать зарегистрированные имена, проверив редактор или блоки внутри каталога плагина.
Если вы хотите изменить отображаемое содержимое виджета, вы можете использовать это
add_action( 'elementor/widget/render_content', function( $content, $widget ){ // $content (string) = the rendered content of the widget; widget = the data object
if ($widget->get_name() === 'heading') { // your targeted widget
$settings = $widget->get_settings(); // every that is stored in this method. Titles, captions, margins and so on. Usually this is all you need
// eg if you simply want to wrap your widgets content you can do something like this
$content .= '<div class="i-am-a-wrapper">'.$content.'</div>';
}
return $content;
}, 10, 2 );
Надеюсь, это поможет:)