protected function __construct() { parent::__construct(); $this->title = __('Link Shortener', 'wpeurl'); add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_styles'), 15); // Custom management of the links post type add_filter('manage_link_posts_columns', array($this, 'add_posts_view_count_column')); add_action('save_post', array($this, 'post_save_assign_post_slug'), 15); add_action('add_meta_boxes_link', array($this, 'maybe_show_link_views')); add_action('manage_link_posts_custom_column', array($this, 'do_posts_view_count_column'), 10, 2); // Create the link metabox add_action('cmb2_admin_init', array($this, 'add_links_metaboxes')); add_action('cmb2_render_readonly', array($this, 'render_callback_readonly'), 10, 5); add_action('cmb2_render_post_slug', array($this, 'render_callback_post_slug'), 10, 5); // Filter saving the CMB2 meta values add_filter('cmb2_override_wpeurl_link_post_slug_meta_value', array($this, 'filter_post_slug_value'), 10, 2); add_filter('cmb2_override_wpeurl_link_redirect_url_meta_value', array($this, 'filter_redirect_url_value'), 10, 2); add_filter('cmb2_override_wpeurl_link_display_url_meta_value', array($this, 'filter_display_url_value'), 10, 2); // Create the options page add_action('admin_init', array($this, 'init')); add_action('admin_menu', array($this, 'add_options_page')); add_action('cmb2_init', array($this, 'add_options_metaboxes')); // Customize the WordPress dashboard add_action('admin_menu', array($this, 'maybe_remove_menus'), 99); }
public function remove_cpt_slug($post_link, $post) { if (!in_array($post->post_type, array('link')) || 'publish' != $post->post_status) { return $post_link; } $post_link = str_replace('/' . $post->post_type . '/', '/', $post_link); return $post_link; } /** * Add our CPT to the queries without a slug * * @since 0.1.0 */ public function parse_request_tricksy($query) { // Only loop the main query if (!$query->is_main_query()) { return; } // Only loop our very specific rewrite rule match if (2 != count($query->query) || !isset($query->query['page'])) { return; } // 'name' will be set if post permalinks are just post_name, otherwise the page rule will match if (!empty($query->query['name'])) { $query->set('post_type', array('post', 'link', 'page')); } } } WPEURLPrimary::get_instance();