晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/rainic/www/wp-contentTZh/plugins/elementor/modules/wp-rest/classes/ |
Upload File : |
<?php
namespace Elementor\Modules\WpRest\Classes;
use Elementor\Plugin;
use Elementor\Utils;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
class Elementor_Post_Meta {
public function register(): void {
$post_types = get_post_types_by_support( 'elementor' );
foreach ( $post_types as $post_type ) {
$this->register_edit_mode_meta( $post_type );
$this->register_template_type_meta( $post_type );
$this->register_elementor_data_meta( $post_type );
$this->register_page_settings_meta( $post_type );
if ( Utils::has_pro() ) {
$this->register_conditions_meta( $post_type );
}
}
}
private function register_edit_mode_meta( string $post_type ): void {
register_meta( 'post', '_elementor_edit_mode', [
'single' => true,
'object_subtype' => $post_type,
'show_in_rest' => [
'schema' => [
'title' => 'Elementor edit mode',
'description' => 'Elementor edit mode, `builder` is required for Elementor editing',
'type' => 'string',
'enum' => [ '', 'builder' ],
'default' => '',
'context' => [ 'edit' ],
],
],
'auth_callback' => [ $this, 'check_edit_permission' ],
]);
}
private function register_template_type_meta( string $post_type ): void {
$document_types = Plugin::$instance->documents->get_document_types();
register_meta( 'post', '_elementor_template_type', [
'single' => true,
'object_subtype' => $post_type,
'show_in_rest' => [
'schema' => [
'title' => 'Elementor template type',
'description' => 'Elementor document type',
'type' => 'string',
'enum' => array_merge( array_keys( $document_types ), [ '' ] ),
'default' => '',
'context' => [ 'edit' ],
],
],
'auth_callback' => [ $this, 'check_edit_permission' ],
]);
}
private function register_elementor_data_meta( string $post_type ): void {
register_meta( 'post', '_elementor_data', [
'single' => true,
'object_subtype' => $post_type,
'show_in_rest' => [
'schema' => [
'title' => 'Elementor data',
'description' => 'Elementor JSON as a string',
'type' => 'string',
'default' => '',
'context' => [ 'edit' ],
],
],
'auth_callback' => [ $this, 'check_edit_permission' ],
]);
}
private function register_page_settings_meta( string $post_type ): void {
register_meta( 'post', '_elementor_page_settings', [
'single' => true,
'object_subtype' => $post_type,
'type' => 'object',
'show_in_rest' => [
'schema' => [
'title' => 'Elementor page settings',
'description' => 'Elementor page level settings',
'type' => 'object',
'properties' => [
'hide_title' => [
'type' => 'string',
'enum' => [ 'yes', 'no' ],
'default' => '',
],
],
'default' => '{}',
'additionalProperties' => true,
'context' => [ 'edit' ],
],
],
'auth_callback' => [ $this, 'check_edit_permission' ],
]);
}
private function register_conditions_meta( string $post_type ): void {
register_meta( 'post', '_elementor_conditions', [
'object_subtype' => $post_type,
'type' => 'object',
'title' => 'Elementor conditions',
'description' => 'Elementor conditions',
'single' => true,
'show_in_rest' => [
'schema' => [
'description' => 'Elementor conditions',
'type' => 'array',
'additionalProperties' => true,
'default' => [],
'context' => [ 'edit' ],
],
],
'auth_callback' => [ $this, 'check_edit_permission' ],
]);
}
/**
* Check if current user has permission to edit the specific post with elementor
*
* @param bool $allowed Whether the user can add the post meta. Default false.
* @param string $meta_key The meta key.
* @param int $post_id Post ID.
* @return bool
* @since 3.27.0
*/
public function check_edit_permission( bool $allowed, string $meta_key, int $post_id ): bool {
$document = Plugin::$instance->documents->get( $post_id );
return $document && $document->is_editable_by_current_user();
}
}