[ 'name' => __( 'Ads', 'advajra' ), 'singular_name' => __( 'Ad', 'advajra' ), 'menu_name' => __( 'AdVajra', 'advajra' ), ], 'public' => false, 'show_ui' => true, 'show_in_menu' => true, 'supports' => [ 'title', 'custom-fields' ], 'show_in_rest' => true, 'menu_icon' => $this->get_menu_icon_data_uri(), 'capability_type' => 'post', 'map_meta_cap' => true, ] ); // Register Custom Statuses $this->register_custom_statuses(); } /** * Register Custom Statuses. */ private function register_custom_statuses() { register_post_status( 'paused', [ 'label' => __( 'Paused', 'advajra' ), 'public' => false, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, /* translators: %s: number of paused ads. */ 'label_count' => _n_noop( 'Paused (%s)', 'Paused (%s)', 'advajra' ), ] ); register_post_status( 'expired', [ 'label' => __( 'Expired', 'advajra' ), 'public' => false, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, /* translators: %s: number of expired ads. */ 'label_count' => _n_noop( 'Expired (%s)', 'Expired (%s)', 'advajra' ), ] ); register_post_status( 'archived', [ 'label' => __( 'Archived', 'advajra' ), 'public' => false, 'exclude_from_search' => true, 'show_in_admin_all_list' => false, 'show_in_admin_status_list' => true, /* translators: %s: number of archived ads. */ 'label_count' => _n_noop( 'Archived (%s)', 'Archived (%s)', 'advajra' ), ] ); } /** * Get WP admin menu icon as data URI. * * @return string */ private function get_menu_icon_data_uri() { $svg = ''; return 'data:image/svg+xml;base64,' . base64_encode( $svg ); } }