Tạo Loại bài đăng tùy chỉnh danh mục đầu tư trong Chủ đề Beaver Builder

Làm cách nào để bạn thêm loại bài đăng tùy chỉnh vào chủ đề Beaver Builder của mình mà không cần bất kỳ plugin nào? Tôi muốn tạo một loại bài đăng tùy chỉnh “portfolio” để giới thiệu tác phẩm của mình. Tôi đã sử dụng các tập lệnh PHP sau trong chủ đề Beaver Builder Child.

Đăng ký Loại bài đăng tùy chỉnh “Danh mục đầu tư”

Mở tệp class-fl-child-theme.php từ thư mục bb-theme-child / classes . Thêm đoạn mã PHP sau vào trên dấu ngoặc nhọn cuối cùng ' } '.
static public function register_custom_post_type_portfolio() { 
	$portfolio_labels = array(
		'name' 			=> __( 'Portfolio', 'taxonomy general name', 'fl-builder'),
		'singular_name' => __( 'Portfolio Item', 'fl-builder'),
		'search_items' 	=>  __( 'Search Portfolio Items', 'fl-builder'),
		'all_items' 	=> __( 'Portfolio', 'fl-builder'),
		'parent_item' 	=> __( 'Parent Portfolio Item', 'fl-builder'),
		'edit_item' 	=> __( 'Edit Portfolio Item', 'fl-builder'),
		'update_item' 	=> __( 'Update Portfolio Item', 'fl-builder'),
		'add_new_item' 	=> __( 'Add New Portfolio Item', 'fl-builder')
	);
	$portfolio_slug = 'portfolio-item';
	$args = array(
		'labels' 				=> $portfolio_labels,
		'rewrite' 				=> array('slug' => $portfolio_slug,'with_front' => false),
		'singular_label' 		=> __('Portfolio', 'fl-builder'),
		'public' 				=> true,
		'publicly_queryable' 	=> true,
		'show_ui' 				=> true,
		'hierarchical' 			=> false,
		'menu_position' 		=> 9,
		'menu_icon' 			=> 'dashicons-art',
		'supports' 				=> array( 'title', 'editor', 'thumbnail' )  
	);
	register_post_type( 'portfolio' , $args );
}
Bây giờ, hãy mở tệp functions.php của chủ đề con BB và thêm dòng đơn này vào cuối tệp:
add_action( 'init', 'FLChildTheme::register_custom_post_type_portfolio' );
Sau đó, bạn có thể làm những việc khác. Bạn có thể đăng ký phân loại tùy chỉnh cho danh mục đầu tư. Tôi đã sử dụng các bước sau.

Đăng ký phân loại "portfolio-cat"

Một lần nữa mở tệp class-fl-child-theme.php và thêm đoạn mã PHP nhỏ này vào đó.
static public function register_taxonomy_portfolio_cat() {
	$category_labels = array(
		'name' 				=> __( 'Categories', 'fl-builder' ),
		'singular_name' 	=> __( 'Category', 'fl-builder' ),
		'search_items' 		=>  __( 'Search Portfolio Categories', 'fl-builder' ),
		'all_items' 		=> __( 'All Portfolio Categories', 'fl-builder' ),
		'parent_item' 		=> __( 'Parent Portfolio Category', 'fl-builder' ),
		'edit_item' 		=> __( 'Edit Portfolio Category', 'fl-builder' ),
		'update_item' 		=> __( 'Update Portfolio Category', 'fl-builder' ),
		'add_new_item' 		=> __( 'Add New Portfolio Category', 'fl-builder' ),
		'menu_name' 		=> __( 'Categories', 'fl-builder' )
	);
	$permalink_slug = 'portfolio-cat';
	register_taxonomy("portfolio-cat", 
		array("portfolio"), 
		array(
			'hierarchical' 	=> true, 
			'labels' 		=> $category_labels,
			'show_ui' 		=> true,
			'query_var' 	=> true,
			'rewrite' 		=> array( 'slug' => $permalink_slug )
		)
	);
}
Sau đó, bạn sẽ thêm mã PHP duy nhất này vào tệp functions.php .
add_action( 'init', 'FLChildTheme::register_taxonomy_portfolio_cat' );
Đây là mã hoàn chỉnh của tệp class-fl-child-theme.php .
/**
 * Helper class for child theme functions.
 *
 * @class FLChildTheme
 */
final class FLChildTheme {    
    /**
	 * Enqueues scripts and styles.
	 *
     * @return void
     */
    static public function enqueue_scripts()
    {
	    wp_enqueue_style( 'fl-child-theme', FL_CHILD_THEME_URL . '/style.css' );
    }
    /**
	 * Register custom post type. New CPT: portfolio
	 *
     * @return void
     */
    static public function register_custom_post_type_portfolio() {  
		$portfolio_labels = array(
			'name' 			=> __( 'Portfolio', 'taxonomy general name', 'fl-builder'),
			'singular_name' => __( 'Portfolio Item', 'fl-builder'),
			'search_items' 	=>  __( 'Search Portfolio Items', 'fl-builder'),
			'all_items' 	=> __( 'Portfolio', 'fl-builder'),
			'parent_item' 	=> __( 'Parent Portfolio Item', 'fl-builder'),
			'edit_item' 	=> __( 'Edit Portfolio Item', 'fl-builder'),
			'update_item' 	=> __( 'Update Portfolio Item', 'fl-builder'),
			'add_new_item' 	=> __( 'Add New Portfolio Item', 'fl-builder')
		);
		$portfolio_slug = 'portfolio-item';
		$args = array(
			'labels' 				=> $portfolio_labels,
			'rewrite' 				=> array('slug' => $portfolio_slug,'with_front' => false),
			'singular_label' 		=> __('Portfolio', 'fl-builder'),
			'public' 				=> true,
			'publicly_queryable' 	=> true,
			'show_ui' 				=> true,
			'hierarchical' 			=> false,
			'menu_position' 		=> 9,
			'menu_icon' 			=> 'dashicons-art',
			'supports' 				=> array( 'title', 'editor', 'thumbnail' )  
		);  
		register_post_type( 'portfolio' , $args );
	}
    /**
	 * Register custom taxonomy for portfolio post type.
	 *
     * @return void
     */
    static public function register_taxonomy_portfolio_cat() {
		$category_labels = array(
			'name' 				=> __( 'Categories', 'fl-builder' ),
			'singular_name' 	=> __( 'Category', 'fl-builder' ),
			'search_items' 		=>  __( 'Search Portfolio Categories', 'fl-builder' ),
			'all_items' 		=> __( 'All Portfolio Categories', 'fl-builder' ),
			'parent_item' 		=> __( 'Parent Portfolio Category', 'fl-builder' ),
			'edit_item' 		=> __( 'Edit Portfolio Category', 'fl-builder' ),
			'update_item' 		=> __( 'Update Portfolio Category', 'fl-builder' ),
			'add_new_item' 		=> __( 'Add New Portfolio Category', 'fl-builder' ),
			'menu_name' 		=> __( 'Categories', 'fl-builder' )
		);
		$permalink_slug = 'portfolio-cat';
		register_taxonomy("portfolio-cat", 
			array("portfolio"), 
			array(
				'hierarchical' 	=> true, 
				'labels' 		=> $category_labels,
				'show_ui' 		=> true,
				'query_var' 	=> true,
				'rewrite' 		=> array( 'slug' => $permalink_slug )
			)
		);
	}
}

Đặt lại cài đặt Permalink

Chúng tôi sẽ tránh lỗi 404 cho các trang lưu trữ danh mục đầu tư và phân loại đơn lẻ. Điều hướng đến Trang tổng quan -> Cài đặt -> Trang Permalink và nhấp vào nút “Lưu thay đổi” . Nó sẽ xóa cấu trúc liên kết cố định và liên kết cố định mới của các mục Danh mục đầu tư sẽ hoạt động hoàn hảo.