Edit file File name : post-custom-field.php Content :<?php namespace ElementorPro\Modules\DynamicTags\Tags; use Elementor\Controls_Manager; use ElementorPro\Modules\DynamicTags\Tags\Base\Tag; use ElementorPro\Modules\DynamicTags\Module; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } class Post_Custom_Field extends Tag { public function get_name() { return 'post-custom-field'; } public function get_title() { return esc_html__( 'Post Custom Field', 'elementor-pro' ); } public function get_group() { return Module::POST_GROUP; } public function get_categories() { return [ Module::TEXT_CATEGORY, Module::URL_CATEGORY, Module::POST_META_CATEGORY, Module::COLOR_CATEGORY, Module::DATETIME_CATEGORY, Module::MEDIA_CATEGORY, ]; } public function get_panel_template_setting_key() { return 'key'; } public function is_settings_required() { return true; } protected function register_controls() { $this->add_control( 'key', [ 'label' => esc_html__( 'Key', 'elementor-pro' ), 'type' => Controls_Manager::SELECT, 'options' => $this->get_custom_keys_array(), ] ); $this->add_control( 'custom_key', [ 'label' => esc_html__( 'Custom Key', 'elementor-pro' ), 'type' => Controls_Manager::TEXT, 'placeholder' => 'key', 'condition' => [ 'key' => '', ], 'ai' => [ 'active' => false, ], ] ); } public function render() { $key = $this->get_settings( 'key' ); if ( empty( $key ) ) { $key = $this->get_settings( 'custom_key' ); } if ( empty( $key ) ) { return; } $value = get_post_meta( get_the_ID(), $key, true ); echo wp_kses_post( $value ); } private function get_custom_keys_array() { $custom_keys = get_post_custom_keys(); $options = [ '' => esc_html__( 'Select...', 'elementor-pro' ), ]; if ( ! empty( $custom_keys ) ) { foreach ( $custom_keys as $custom_key ) { if ( '_' !== substr( $custom_key, 0, 1 ) ) { $options[ $custom_key ] = $custom_key; } } } return $options; } } Save