post_type !== $screen->id ) { return; } global $wp_query; if ( (int) $wp_query->found_posts === 0 ) { $path = str_replace(ABSPATH, '', dirname(__FILE__)); $url = home_url($path) . '/demo_data.xml'; $import_url = admin_url('import.php'); echo '

'; printf( __('It looks like you might not have any demo data. Download our data and use the WordPress Importer.', 'tribe-apm'), esc_url( $url ), esc_url( $import_url ) ); echo '

'; } } public function test_filters() { $filter_args = array( 'release_date' => array( 'name' => 'Release Date', 'meta' => '_release_date', 'cast' => 'DATE', // If it's a date, optionally supply your own date_format for display purposes 'date_format' => 'M j, Y' ), 'stars' => array( 'name' => 'Stars', 'meta' => '_stars', 'options' => array( '0.5' => '½', '1' => '1', '1.5' => '1 ½', '2' => '2', '2.5' => '2 ½', '3' => '3', '3.5' => '3 ½', '4' => '4' ), 'cast' => 'DECIMAL', ), 'director' => array( 'name' => 'Director', 'meta' => '_director', 'metabox' => 'my_box' ), 'tribe_post_status' => array( 'name' => 'Status', 'custom_type' => 'post_status', 'sortable' => true ) ); $boxes = array( 'my_box' => 'Awesome Box' ); $labels = array( 'name' => 'Demo Movies', 'singular_name' => 'Demo Movie', 'add_new_item' => 'Add New Demo Movie' ); register_post_type($this->post_type, array( 'show_ui' => true, 'labels' => $labels, 'supports' => array('title') )); register_taxonomy('tribe_studio', $this->post_type, array( 'show_ui' => true, 'hierarchical' => true, 'labels' => array( 'name' => 'Studios', 'singluar_name' => 'Studio' ) )); register_taxonomy('tribe_genre', $this->post_type, array( 'show_ui' => true, 'hierarchical' => true, 'labels' => array( 'name' => 'Genres', 'singluar_name' => 'Genre' ) )); global $cpt_filters; $cpt_filters = tribe_setup_apm($this->post_type, $filter_args, $boxes ); } public function log($data = array() ) { error_log(print_r($data,1)); } } new Tribe_Demo_APM; class Tribe_Status_Type { protected $key = 'tribe_post_status'; protected $type = 'post_status'; public function __construct() { $type = $this->type; add_filter( 'tribe_custom_column'.$type, array($this, 'column_value'), 10, 3 ); add_filter( 'tribe_custom_row'.$type, array($this, 'form_row'), 10, 4 ); add_filter( 'tribe_maybe_active'.$type, array($this, 'maybe_set_active'), 10, 3 ); add_action( 'tribe_after_parse_query', array($this, 'parse_query'), 10, 2 ); add_action( 'tribe_orderby_custom'.$type, array($this, 'orderby'), 10, 2 ); } public function orderby($wp_query, $filter) { add_filter( 'posts_orderby', array($this, 'set_orderby'), 10, 2 ); } public function set_orderby($orderby, $wp_query) { // run once remove_filter( 'posts_orderby', array($this, 'set_orderby'), 10, 2 ); global $wpdb; list($by, $order) = explode(' ', trim($orderby) ); $by = "{$wpdb->posts}.post_status"; return $by . ' ' . $order; } public function parse_query($wp_query, $active) { if ( ! isset($active[$this->key]) ) { return; } $status = $active[$this->key]['value']; $wp_query->set('post_status', $status); } public function maybe_set_active($return, $key, $filter) { if ( isset($_POST[$key]) && ! empty($_POST[$key]) ) { return array('value' => $_POST[$key]); } return $return; } public function form_row($return, $key, $value, $filter) { $stati = get_post_stati(array('show_in_admin_status_list'=>true), 'objects'); $args = array(); foreach ( $stati as $k => $object ) { $args[$k] = $object->label; } return tribe_select_field($key, $args, $value['value'], true); } public function column_value($value, $column_id, $post_id) { $status = get_post_status($post_id); $status_object = get_post_status_object($status); return ( isset($status_object->label) ) ? $status_object->label : $status; } public function log($data = array() ) { error_log(print_r($data,1)); } } new Tribe_Status_Type;