Cherry Framework 사용자 지정 게시물 유형 추가
-
29-09-2020 - |
문제
체리 프레임 워크를위한 개발자 문서가 존재하지 않는 것처럼 보입니다.
내 테마 init 파일에 다음 코드가있는 사용자 정의 포스트 유형을 추가하려고합니다. (이 코드는 체리 프레임 워크가있는 테마와 함께 사용되는 표준 설치에서는 잘 작동합니다. 나는 404 오류를 얻지 못합니다.)
<?php
add_action( 'after_setup_theme', 'my_setup' );
if ( ! function_exists( 'my_setup' ) ):
function my_setup() {
// This theme styles the visual editor with editor-style.css to match the theme style.
add_editor_style();
// This theme uses post thumbnails
if ( function_exists( 'add_theme_support' ) ) { // Added in 2.9
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 299, 190, true ); // Normal post thumbnails
add_image_size( 'slider-post-thumbnail', 1386, 563, true ); // Slider Thumbnail
add_image_size( 'slider-thumb', 96, 41, true ); // Slider Small Thumbnail
}
// Add default posts and comments RSS feed links to head
add_theme_support( 'automatic-feed-links' );
// custom menu support
add_theme_support( 'menus' );
if ( function_exists( 'register_nav_menus' ) ) {
register_nav_menus(
array(
'top_header_menu' => 'Top Header Menu',
'header_menu' => 'Header Menu',
'footer_menu' => 'Footer Menu'
)
);
}
}
endif;
/* Slider */
function my_post_type_slider() {
register_post_type( 'slider',
array(
'label' => __('Slides', CURRENT_THEME),
'singular_label' => __('Slide', CURRENT_THEME),
'_builtin' => false,
'exclude_from_search' => true, // Exclude from Search Results
'capability_type' => 'page',
'public' => true,
'show_ui' => true,
'show_in_nav_menus' => false,
'rewrite' => array(
'slug' => 'slide-view',
'with_front' => FALSE,
),
'query_var' => "slide", // This goes to the WP_Query schema
'menu_icon' => get_template_directory_uri() . '/includes/images/icon_slides.png',
'supports' => array(
'title',
'custom-fields',
'thumbnail')
)
);
}
add_action('init', 'my_post_type_slider');
/* Portfolio */
function my_post_type_portfolio() {
register_post_type( 'portfolio',
array(
'label' => __('Projects', CURRENT_THEME),
'singular_label' => __('Project', CURRENT_THEME),
'_builtin' => false,
'public' => true,
'show_ui' => true,
'show_in_nav_menus' => true,
'hierarchical' => true,
'capability_type' => 'page',
'menu_icon' => get_template_directory_uri() . '/includes/images/icon_portfolio.png',
'rewrite' => array(
'slug' => 'portfolio-view',
'with_front' => FALSE,
),
'supports' => array(
'title',
'editor',
'thumbnail',
'excerpt',
'custom-fields',
'comments')
)
);
register_taxonomy('portfolio_category', 'portfolio', array('hierarchical' => true, 'label' => 'Categories', 'singular_name' => 'Category', "rewrite" => true, "query_var" => true));
register_taxonomy('portfolio_tag', 'portfolio', array('hierarchical' => false, 'label' => 'Tags', 'singular_name' => 'Tag', 'rewrite' => true, 'query_var' => true));
}
add_action('init', 'my_post_type_portfolio');
/* Testimonial */
function my_post_type_testi() {
register_post_type( 'testi',
array(
'label' => __('Testimonial', CURRENT_THEME),
'public' => true,
'show_ui' => true,
'show_in_nav_menus' => false,
'menu_position' => 5,
'rewrite' => array(
'slug' => 'testimonial-view',
'with_front' => FALSE,
),
'supports' => array(
'title',
'custom-fields',
'thumbnail',
'editor')
)
);
}
add_action('init', 'my_post_type_testi');
/* Services */
function my_post_type_services() {
register_post_type( 'services',
array(
'label' => __('Services', CURRENT_THEME),
'public' => true,
'show_ui' => true,
'show_in_nav_menus' => false,
'menu_position' => 5,
'rewrite' => array(
'slug' => 'services-view',
'with_front' => FALSE,
),
'supports' => array(
'title',
'thumbnail',
'editor')
)
);
}
add_action('init', 'my_post_type_services');
/* FAQs */
function phi_post_type_faq() {
register_post_type('faq',
array(
'label' => __('FAQs', CURRENT_THEME),
'singular_label' => __('FAQ', CURRENT_THEME),
'public' => false,
'show_ui' => true,
'_builtin' => false, // It's a custom post type, not built in
'_edit_link' => 'post.php?post=%d',
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array("slug" => "faq"), // Permalinks
'query_var' => "faq", // This goes to the WP_Query schema
'supports' => array('title','author','editor'),
'menu_position' => 5,
'publicly_queryable' => true,
'exclude_from_search' => false,
));
}
add_action('init', 'phi_post_type_faq');
/* Our Team */
function my_post_type_team() {
register_post_type( 'team',
array(
'label' => __('Our Team', CURRENT_THEME),
'singular_label' => __('Person', CURRENT_THEME),
'_builtin' => false,
'exclude_from_search' => true, // Exclude from Search Results
'capability_type' => 'page',
'public' => true,
'show_ui' => true,
'show_in_nav_menus' => false,
'menu_position' => 5,
'rewrite' => array(
'slug' => 'team-view',
'with_front' => FALSE,
),
'supports' => array(
'title',
'custom-fields',
'editor',
'thumbnail')
)
);
}
add_action('init', 'my_post_type_team');
function products_post_type() {
$labels = array(
'name' => _x( 'Products', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Product', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Products', 'text_domain' ),
'parent_item_colon' => __( 'Parent Product:', 'text_domain' ),
'all_items' => __( 'All Products', 'text_domain' ),
'view_item' => __( 'View Product', 'text_domain' ),
'add_new_item' => __( 'Add New Product', 'text_domain' ),
'add_new' => __( 'New Product', 'text_domain' ),
'edit_item' => __( 'Edit Product', 'text_domain' ),
'update_item' => __( 'Update Product', 'text_domain' ),
'search_items' => __( 'Search products', 'text_domain' ),
'not_found' => __( 'No products found', 'text_domain' ),
'not_found_in_trash' => __( 'No products found in Trash', 'text_domain' ),
);
$args = array(
'label' => __( 'product', 'text_domain' ),
'description' => __( 'Product information pages', 'text_domain' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', ),
'taxonomies' => array( 'category', 'post_tag' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
);
register_post_type( 'product', $args );
}
// Hook into the 'init' action
add_action( 'init', 'products_post_type');
function my_connection_types() {
p2p_register_connection_type(
array(
'name' => 'testi_to_product',
'from' => 'testi',
'to' => 'product',
'admin_box' =>
array(
'show' => 'any',
'context' => 'advanced'
)
)
);
}
add_action( 'p2p_init', 'my_connection_types' );
?>
.
신제품을 만드는 후에는 게시물을 표시 할 수 없으며 범주와 단일 페이지에 대해 404 오류가 발생합니다.
누구나 체리 프레임 워크에 새 포스트 타입을 추가 할 수 있으며 올바른 방향으로 나를 올바르게 통합 할 수 있습니까?
해결책
코드가 끝나면
add_action('init,'products_post_type');
.
/wp-content/your_custom_theme/includes/theme-init.php 파일에 파일에 추가하고 있는지 확인한 다음 물론 Permalink를 업데이트하십시오.
cherryframework를 사용하여 cherryframework 폴더의 파일을 수정하지 않거나 업데이트가 발생하면 삭제할 수 있습니다.
방금 Cherry Dev 사이트에서 코드를 테스트했으며 잘 작동했습니다.테마 init에 더 많은 것이 있어야합니까?
다른 팁
추가 시도 :
add_action( 'init', 'products_post_type' );
.
relinche_example"> register_post_type()
함수를 추가해야합니다.init 훅이므로 실제로 실행 입니다.그렇지 않으면, 당신이 가지고있는 것은 정의 된 함수이지만 결코 실행되지 않은 함수입니다.
기본 테마 로이 작업을 수행 한 경우이 기능을 작업 후크에 추가했습니다.나는 theme-init.php
파일이 체리 프레임 워크에 무엇인지 모르지만, Post Type은 어쨌든 테마에 속하지 않습니다.테마를 변경해야 할 때는 어떻게됩니까?
POST 유형 코드를 플러그인이나 심지어 사이트 별 스 니펫 플러그인