Question

À la recherche d'informations en tant que Documents de développement pour le cadre de Cherry semble être inexistant.

J'essaie d'ajouter un type post-type personnalisé avec le code suivant dans mon fichier theme-init: (Ce code fonctionne correctement dans une installation standard utilisée avec un thème avec le framework cerise, il ne s'affiche pas, je viens d'obtenir une erreur 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' );
?>

Après avoir créé de nouveaux produits, je ne peux pas obtenir le message à afficher, je viens d'obtenir une erreur 404, pour la catégorie et la page unique.

Quelqu'un a-t-il réussi à ajouter un nouveau type post-type à la framework Cherry et peut me signaler dans la bonne direction pour l'intégrer correctement?

Était-ce utile?

La solution

à la fin de votre code après le dernier} Ajouter:

add_action('init,'products_post_type');

Assurez-vous que vous ajoutez ceci au fichier dans le fichier /wp-content/your_custom_theme/includes/theme-init.php, puis mettez-moi à jour le Permalink.

Avec le CherryFramework, assurez-vous de ne modifier aucun des fichiers dans le dossier CherryFramework, ou vous perdrez lorsque une mise à jour se produit.

Je viens de tester votre code sur un site de Cherry DeV que j'ai, et cela a bien fonctionné.Il doit y avoir plus à votre thème-init?

Autres conseils

Essayez d'ajouter:

add_action( 'init', 'products_post_type' );

Comme vous pouvez le voir dans l'exemple du Codex pour gen 15"nofollow"> register_post_type() Vous devez ajouter votre fonction àLe crochet init, de sorte qu'il soit effectivement courir .Sinon, ce que vous avez, est une fonction définie, mais jamais exécutée.

Si vous l'avez fait avec un thème par défaut, vous ajoutez la fonction à un crochet d'action.Je ne sais pas ce qu'est un fichier genévoodiceCode dans le cadre de cerise, mais les types de poste n'appartiennent vraiment pas à un thème de toute façon.Que se passe-t-il quand vous devez changer de thèmes?

Je suggérerais de déplacer votre code de type post sur un plugin ou même un Plugin d'extraits spécifiques au site

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top