我试图找到一个钩子,使我可以将自己的代码添加到现有的elementor小部件中。例如,它们具有“帖子小部件”,可让您根据您设置的条件/类别显示帖子列表。
我想将自己的代码添加到此“块”中,但是无法找到任何特定的钩子来钩入现有的小部件(特别是帖子小部件)
任何帮助将不胜感激。有这个钩子吗?如果不是,我的下一个最佳选择是什么?
谢谢!
答案 0 :(得分:0)
这取决于您要实现的目标,但总的来说有一些钩子。
我不确定posts-widget,但我可以向您展示一些示例。
如果要向控件添加控件,请使用此控件(您可以在其文档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 );
我希望这会有所帮助:)