Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
types
/
application
/
models
:
post_type.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * FIXME please document this! */ class Types_Post_Type { /** @var null|WP_Post_Type */ protected $wp_post_type; protected $name; protected $field_groups; protected $taxonomies; public function __construct( $post_type ) { if( is_object( $post_type ) && isset( $post_type->name ) ) { $this->wp_post_type = $post_type; $this->name = $post_type->name; } else { $this->name = $post_type; $registered = get_post_type_object( $post_type ); if( $registered ) { $this->wp_post_type = $registered; } } } public function __isset( $property ) { if( $this->wp_post_type === null ) return false; if( ! property_exists( $this->wp_post_type, 'labels' ) ) return false; if( ! property_exists( $this->wp_post_type->labels, $property ) ) return false; return true; } public function __get( $property ) { if( ! $this->__isset( $property ) ) return false; return $this->wp_post_type->labels->$property; } public function get_name() { return $this->name; } /** * Get the backend edit link. * * @return string * @since 2.1 */ public function get_edit_link() { return admin_url() . 'admin.php?page=wpcf-edit-type&wpcf-post-type=' . $this->get_name(); } /** * Register Post Type */ /** * Assigned Field Groups */ private function fetch_field_groups() { global $wpdb; $sql = 'SELECT post_id FROM ' .$wpdb->postmeta . ' WHERE meta_key="_wp_types_group_post_types" AND (meta_value LIKE "%' . $this->name . '%" OR meta_value="all" OR meta_value REGEXP "^[,]+$") ORDER BY post_id ASC'; $post_ids = $wpdb->get_col( $sql ); $this->field_groups = array(); foreach( $post_ids as $id ) { $field_group = Types_Field_Group_Post_Factory::load( $id ); if( $field_group ) $this->field_groups[] = $field_group; } } public function get_field_groups() { if( $this->field_groups == null ) $this->fetch_field_groups(); return $this->field_groups; } /** * Assigned Taxonomies */ private function fetch_taxonomies() { $taxonomies = array(); $all_taxonomies = get_taxonomies( '', 'objects' ); foreach( $all_taxonomies as $tax ) { if( in_array( $this->get_name(), $tax->object_type ) ) $taxonomies[] = new Types_Taxonomy( $tax ); } $this->taxonomies = $taxonomies; } public function get_taxonomies() { if( $this->taxonomies == null ) $this->fetch_taxonomies(); return $this->taxonomies; } /** * Assigned Templates */ /** * Assigned Archives */ /** * Assigned Views */ /** * Assigned Forms */ }