Pregunta

Estoy buscando información ya que los documentos de desarrollador para Cherry Framework parecen no existir.

Estoy intentando agregar un tipo de publicación personalizado con el siguiente código en mi archivo de inicio de tema:(Este código funciona bien en una instalación estándar utilizada con un tema con el marco Cherry, no se muestra, solo aparece un error 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' );
?>

Después de crear nuevos productos, no puedo mostrar la publicación, solo aparece un error 404, para la categoría y la página única.

¿Alguien logró agregar un nuevo tipo de publicación al marco Cherry y puede indicarme la dirección correcta para integrarlo correctamente?

¿Fue útil?

Solución

al final de su código después del último} Agregar:

add_action('init,'products_post_type');

Asegúrese de agregar esto al archivo en el archivo /wp-content/yur_custom_theme/includes/theme-init.php, y luego, por supuesto, actualice el Permalink.

Con el cerefábrico, asegúrese de no modificar ninguno de los archivos en la carpeta CherryFramework o perderá cuando ocurra una actualización.

Acabo de probar su código en un sitio de Dev Cherry, y funcionó bien.Debe haber más a tu tema-init?

Otros consejos

Intente agregar:

add_action( 'init', 'products_post_type' );

Como puede ver en el ejemplo del Codex para register_post_type() debes agregar tu función al gancho de inicio, para que en realidad sea correr.De lo contrario, lo que tienes es una función que está definida, pero nunca ejecutada.

Si hizo esto con un tema predeterminado, entonces estaba agregando la función a un gancho de acción.No sé qué theme-init.php El archivo está en el marco de Cherry, pero los tipos de publicaciones realmente no pertenecen a un tema de todos modos.¿Qué sucede cuando necesitas cambiar de tema?

Sugeriría mover el código de tipo de publicación a un complemento o incluso a un complemento de fragmentos específicos del sitio

Licenciado bajo: CC-BY-SA con atribución
scroll top