[
'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 );
}
}