为Elementor表单添加动态标签:获取文章标题等字段
为Elementor表单隐藏字段添加文章标题等自定义动态标签
要扩展Elementor的动态标签,让文章标题、ID、自定义字段等内容能被表单隐藏字段调用,你可以通过Elementor提供的钩子来注册自定义动态标签,具体步骤如下:
1. 编写自定义动态标签代码
通过elementor/dynamic_tags/register钩子注册新的动态标签类,将需要的页面数据字段添加到标签列表中。以下是示例代码,包含文章标题和文章ID的标签实现:
<?php add_action( 'elementor/dynamic_tags/register', function( $dynamic_tags ) { // 注册「文章标题」动态标签 class Custom_Post_Title_Tag extends \Elementor\Core\DynamicTags\Tag { public function get_name() { return 'custom-post-title'; } public function get_title() { return esc_html__( '文章标题', 'text-domain' ); } public function get_group() { return 'post'; // 归到默认的「文章」标签分组 } public function get_categories() { return [ \Elementor\Modules\DynamicTags\Module::TEXT_CATEGORY ]; // 标记为文本类标签,适配隐藏字段 } public function render() { global $post; if ( $post ) { echo wp_kses_post( get_the_title( $post->ID ) ); } } } $dynamic_tags->register( new Custom_Post_Title_Tag() ); // 注册「文章ID」动态标签 class Custom_Post_ID_Tag extends \Elementor\Core\DynamicTags\Tag { public function get_name() { return 'custom-post-id'; } public function get_title() { return esc_html__( '文章ID', 'text-domain' ); } public function get_group() { return 'post'; } public function get_categories() { return [ \Elementor\Modules\DynamicTags\Module::TEXT_CATEGORY ]; } public function render() { global $post; if ( $post ) { echo esc_html( $post->ID ); } } } $dynamic_tags->register( new Custom_Post_ID_Tag() ); } );
如果需要其他字段(比如发布日期、自定义字段),可以参照上述模式扩展:
- 发布日期:将
render()方法内的代码替换为echo esc_html( get_the_date( 'Y-m-d', $post->ID ) ); - 自定义字段:替换为
echo esc_html( get_post_meta( $post->ID, '你的自定义字段键', true ) );
2. 添加代码到站点
- 方法一:将代码复制到当前主题的
functions.php文件末尾 - 方法二:使用代码片段插件(如Code Snippets)添加,避免主题更新导致代码丢失
3. 在Elementor表单中使用
编辑Elementor表单的隐藏字段,点击字段设置中的动态标签按钮,在「文章」分组下就能看到新增的「文章标题」「文章ID」等标签,选择后即可自动填充对应页面的内容到隐藏字段中。
内容的提问来源于stack exchange,提问作者slarge
相关产品推荐
相关产品推荐

