ProShell v2.0
Dashboard
Server Info
Server: 158.106.128.192
PHP: 8.2.33
home
planet5
public_html
bansibaba.com
wp-includes
2026-09-12 13:41:00
Editing: Object.php
Cancel
Save Changes
<?php abstract class ET_Core_Post_Object { /** * @var ET_Core_Data_Utils */ protected static $_; /** * Current instances of this class organized by type. * * @since 3.0.99 * @var array[] { * * @type ET_Core_Post_Object[] $type { * * @type ET_Core_Post_Object $name Instance. * ... * } * ... * } */ private static $_instances = array(); /** * The `$args` array used when registering this post object. * * @since 3.0.99 * @var array */ protected $_args; /** * The owner of this instance. Default 'core'. Accepts 'divi', 'builder', 'epanel', 'bloom', 'monarch'. * * @since 3.0.99 * @var string */ protected $_owner = 'core'; /** * Whether or not the object has been registered. * * @since 3.0.99 * @var bool */ protected $_registered = false; /** * The WP object for this instance. * * @since 3.0.99 * @var WP_Post_Type|WP_Taxonomy */ protected $_wp_object; /** * Post object key. * * @since 3.0.99 * @var string */ public $name; /** * Post object type. Accepts 'cpt', 'taxonomy'. * * @since 3.0.99 * @var string */ public $wp_type; /** * ET_Core_Post_Base constructor. */ public function __construct() { $this->_args = $this->_get_args(); $this->_args['labels'] = $this->_get_labels(); $this->_apply_filters(); $this->_sanity_check(); if ( empty( self::$_instances ) ) { self::$_instances['cpt'] = array(); self::$_instances['taxonomy'] = array(); add_action( 'init', 'ET_Core_Post_Object::register_all' ); } self::$_instances[ $this->wp_type ][ $this->name ] = $this; } /** * Applies filters to the instance's filterable properties. */ protected function _apply_filters() { $name = $this->name; if ( 'cpt' === $this->wp_type ) { /** * Filters the `$args` for a custom post type. The dynamic portion of the * filter, `$name`, refers to the name/key of the post type being registered. * * @since 3.0.99 * * @param array $args {@see register_post_type()} */ $this->_args = apply_filters( "et_core_cpt_{$name}_args", $this->_args ); } else if ( 'taxonomy' === $this->wp_type ) { /** * Filters the `$args` for a custom post taxonomy. The dynamic portion of the * filter, `$name`, refers to the name/key of the taxonomy being registered. * * @since 3.0.99 * * @param array $args {@see register_taxonomy()} */ $this->_args = apply_filters( "et_core_taxonomy_{$name}_args", $this->_args ); } } /** * This method is called right before registering the object. It is intended to be * overridden by child classes as needed. */ protected function _before_register() {} /** * Returns the args for the instance. * See {@see register_post_type()} or {@see register_taxonomy()}. * * @return array $args */ abstract protected function _get_args(); /** * Returns labels for the instance. * See {@see register_post_type()} or {@see register_taxonomy()}. * * @return array $labels */ abstract protected function _get_labels(); /** * Checks for required properties and existing instances. */ protected function _sanity_check() { if ( ! $this->_args || ! $this->name || ! $this->wp_type ) { et_error( 'Missing required properties!' ); wp_die(); } else if ( isset( self::$_instances[ $this->wp_type ][ $this->name ] ) ) { et_error( 'Multiple instances are not allowed!' ); wp_die(); } } /** * Get a derived class instance. * * @since 3.0.99 * * @param string $type See {@see self::$wp_type} for accepted values. Default is 'cpt'. * @param string $name The name/slug of the derived object. Default is an empty string. * * @return self|null */ public static function instance( $type = 'cpt', $name = '' ) { if ( ! self::$_ ) { self::$_ = ET_Core_Data_Utils::instance(); } return self::$_->array_get( self::$_instances, "{$type}.{$name}", null ); } /** * Calls either {@see register_post_type} or {@see register_taxonomy} for each instance. * * @since 3.0.99 * * @param string $owner Optional. Only register objects owned by a part of the codebase. * See {@see self::_owner} for accepted values. */ public static function register_all( $owner = null ) { if ( empty( self::$_instances ) ) { return; } global $wp_taxonomies; foreach ( self::$_instances['taxonomy'] as $name => $instance ) { $can_register = is_null( $owner ) || $owner === $instance->_owner; if ( $instance->_registered || ! $can_register ) { continue; } $instance->_before_register(); register_taxonomy( $name, $instance->post_types, $instance->_args ); $instance->_wp_object = $wp_taxonomies[ $name ]; $instance->_registered = true; } foreach ( self::$_instances['cpt'] as $name => $instance ) { $can_register = is_null( $owner ) || $owner === $instance->_owner; if ( $instance->_registered || ! $can_register ) { continue; } $instance->_before_register(); $instance->_wp_object = register_post_type( $name, $instance->_args ); $instance->_registered = true; } } }
Upload Files
Cancel
Upload
Create New
Cancel
Create
Change Permissions
Cancel
Save
Change Date
Cancel
Save
Rename Item
Cancel
Save
Confirm Delete
Are you sure you want to delete the selected items?
Cancel
Delete