Example #1
0
 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);
 }
Example #2
0
    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();