register_post_type(); } /** * Register the custom post type. * * @link http://codex.wordpress.org/Function_Reference/register_post_type */ protected function register_post_type() { global $ADL_team; // Args for ADL_TEAM_POST_TYPE $labels = array( 'name' => _x( 'Teams', 'Plural Name of Team', ADL_TEAM_TEXTDOMAIN ), 'singular_name' => _x( 'Member', 'Singular Name of Member', ADL_TEAM_TEXTDOMAIN ), 'menu_name' => __( 'Teams', ADL_TEAM_TEXTDOMAIN ), 'name_admin_bar' => __( 'Member', ADL_TEAM_TEXTDOMAIN ), 'parent_item_colon' => __( 'Parent Member:', ADL_TEAM_TEXTDOMAIN ), 'all_items' => __( 'All Members', ADL_TEAM_TEXTDOMAIN ), 'add_new_item' => __( 'Add New Member', ADL_TEAM_TEXTDOMAIN ), 'add_new' => __( 'Add New Member', ADL_TEAM_TEXTDOMAIN ), 'new_item' => __( 'New Member', ADL_TEAM_TEXTDOMAIN ), 'edit_item' => __( 'Edit Member', ADL_TEAM_TEXTDOMAIN ), 'update_item' => __( 'Update Member', ADL_TEAM_TEXTDOMAIN ), 'view_item' => __( 'View Member', ADL_TEAM_TEXTDOMAIN ), 'search_items' => __( 'Search Member', ADL_TEAM_TEXTDOMAIN ), 'not_found' => __( 'Not found', ADL_TEAM_TEXTDOMAIN ), 'not_found_in_trash' => __( 'Not found in Trash', ADL_TEAM_TEXTDOMAIN ), ); $args = array( 'label' => __( 'Team', ADL_TEAM_TEXTDOMAIN ), 'description' => __( 'Member', ADL_TEAM_TEXTDOMAIN ), 'labels' => $labels, 'supports' => array( 'title'), 'taxonomies' => array(), 'hierarchical' => false, 'public' => true, 'rewrite' => array('slug' => ADL_TEAM_POST_TYPE), 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 20, 'menu_icon' => 'dashicons-groups', 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => false, 'exclude_from_search' => false, 'publicly_queryable' => true, 'capability_type' => 'post', ); // get the rewrite slug from the user settings, if exist use it. $slug = get_option('adl_team_slug'); if (!empty($slug)) { $args['rewrite'] = array( 'slug'=> $slug, ); } //Args for ADL_TEAM_SHORT_CODE_POST_TYPE $shortcode_label = array( 'name' => _x( 'Shortcodes', 'Plural Name of Shortcode', ADL_TEAM_TEXTDOMAIN ), 'singular_name' => _x( 'Shortcode', 'Singular Name of Shortcode', ADL_TEAM_TEXTDOMAIN ), 'menu_name' => __( 'Shortcode Generator', ADL_TEAM_TEXTDOMAIN ), 'name_admin_bar' => __( 'Shortcode', ADL_TEAM_TEXTDOMAIN ), 'parent_item_colon' => __( 'Parent Shortcode:', ADL_TEAM_TEXTDOMAIN ), 'all_items' => __( 'Shortcode Generator', ADL_TEAM_TEXTDOMAIN ), 'add_new_item' => __( 'Add New Shortcode', ADL_TEAM_TEXTDOMAIN ), 'add_new' => __( 'Generate New Shortcode', ADL_TEAM_TEXTDOMAIN ), 'new_item' => __( 'Generate New Shortcode', ADL_TEAM_TEXTDOMAIN ), 'edit_item' => __( 'Edit Shortcode', ADL_TEAM_TEXTDOMAIN ), 'update_item' => __( 'Update Shortcode', ADL_TEAM_TEXTDOMAIN ), 'view_item' => __( 'View Shortcode', ADL_TEAM_TEXTDOMAIN ), 'search_items' => __( 'Search Shortcode', ADL_TEAM_TEXTDOMAIN ), 'not_found' => __( 'No shortcodes found', ADL_TEAM_TEXTDOMAIN ), 'not_found_in_trash' => __( 'No shortcodes found in Trash', ADL_TEAM_TEXTDOMAIN ), ); $shortcode_args = array( 'label' => __( 'Shortcode', ADL_TEAM_TEXTDOMAIN ), 'description' => __( 'Shortcode', ADL_TEAM_TEXTDOMAIN ), 'labels' => $shortcode_label, 'supports' => array( 'title'), 'taxonomies' => array(), 'hierarchical' => false, 'public' => false, 'rewrite' => array('slug' => ADL_TEAM_SHORT_CODE_POST_TYPE), 'show_ui' => true, 'show_in_menu' => 'edit.php?post_type='.ADL_TEAM_POST_TYPE, 'menu_position' => 65, 'menu_icon' => 'dashicons-groups', 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => false, 'exclude_from_search' => false, 'publicly_queryable' => false, 'capability_type' => 'page', ); register_post_type( ADL_TEAM_POST_TYPE, $args ); register_post_type( ADL_TEAM_SHORT_CODE_POST_TYPE, $shortcode_args ); flush_rewrite_rules(); } public function add_new_shortcode_columns($columns){ $columns = array(); $columns['cb'] = ''; $columns['title'] = esc_html__('Team Name', ADL_TEAM_TEXTDOMAIN); $columns['adl_team_sc_1'] = esc_html__('Team Shortcode', ADL_TEAM_TEXTDOMAIN); $columns['adl_team_sc_2'] = esc_html__('Shortcode for Template File', ADL_TEAM_TEXTDOMAIN); $columns['date'] = esc_html__('Created at', ADL_TEAM_TEXTDOMAIN); return $columns; } public function manage_shortcode_columns( $column_name, $post_id ) { switch($column_name){ case 'adl_team_sc_1': ?> '; $columns['title'] = esc_html__('Member Name', ADL_TEAM_TEXTDOMAIN); $columns['adl_team_cc_1'] = esc_html__('Member Image', ADL_TEAM_TEXTDOMAIN); $columns['adl_team_cc_2'] = esc_html__('Designation', ADL_TEAM_TEXTDOMAIN); $columns['date'] = esc_html__('Created at', ADL_TEAM_TEXTDOMAIN); return $columns; } public function manage_team_columns( $column_name, $post_id ) { global $ADL_team; $g_info = get_post_meta( $post_id, 'general' , true); // return serialized and encoded string of array value $general_info = (!empty($g_info) ? unserialize( base64_decode( $g_info )) : array()); $post_link = admin_url( 'post.php?post='.$post_id.'&action=edit'); switch($column_name){ case 'adl_team_cc_1': $img_info = wp_get_attachment_image_src( intval(@$general_info['_member_image_id']) , array(30, 30)); if (!empty($img_info[0])){ echo " "; }else{ esc_html_e('No Image', ADL_TEAM_TEXTDOMAIN); } break; case 'adl_team_cc_2': $ADL_team->display_terms_of_post($post_id, 'adl-team-designation'); break; default: break; } } /** * Change the placeholder of title input box * @param string $title Name of the Post Type * * @return string Returns modified title */ public function change_title_text( $title ){ global $typenow; if ( ADL_TEAM_POST_TYPE == $typenow ) { $title = 'Enter member name'; }elseif(ADL_TEAM_SHORT_CODE_POST_TYPE == $typenow){ $title = 'Eg. Our Awesome Team'; } return $title; } /** * It loads custom template for member single page * @param string $template The name of the current template * * @return string It returns custom template for single page of a member for the adl-team post type */ public function load_custom_template($template) { global $post; // Is this a ADL_TEAM_POST_TYPE post? if ($post->post_type == ADL_TEAM_POST_TYPE){ // The name of custom post type single template $template_name = 'single-'.ADL_TEAM_POST_TYPE.'.php'; // A specific single template for my custom post type exists in theme folder? Or it also doesn't exist in my plugin? if($template === get_stylesheet_directory() . '/' . $template_name || !file_exists(ADL_TEAM_TEMPLATES_DIR . $template_name)) { //Then return "single.php" or "single-ADL_TEAM_POST_TYPE.php" from theme directory. return $template; } wp_enqueue_style('adl-team-core-style'); wp_enqueue_script('adl-team-public-js'); // If not, return my plugin custom post type template. return ADL_TEAM_TEMPLATES_DIR . $template_name; } //This is not my custom post type, do nothing with $template return $template; } } endif;