我的WordPress项目中有自定义帖子类型的产品。 CPT有几个自定义字段和两个可以附加到其上的分类。我可以在wordpress管理员中添加/编辑/删除所有这些,没有任何问题。
我现在正在努力解决的问题是在前端展示这些产品自定义帖子类型。如果我进入EDIT PRODUCT管理部分,我可以看到每个产品的永久链接(我甚至可以看到每个分类的链接),但点击它们会显示404。
我希望能够直接链接到产品(例如http://localhost:8888/project/product/productname/),就像在“编辑CPT”页面中显示一样。如果他们只选择这些产品的分类法,我也想列出产品。希望有道理。
有没有办法做到这一点,而无需为每个分类和产品制作页面?这是我第一次显示CPT(任何帖子),所以我无法绕过它。我需要为这些制作页面吗?
谢谢!
这是我的自定义帖子类型:
/* CUSTOM POST TYPE AREA FOR PRODUCTS */
add_action( 'init', 'create_product_post_type' );
function create_product_post_type()
{
$labels = array(
'name' => _x('Products', 'post type general name'),
'singular_name' => _x('Product', 'post type singular name'),
'add_new' => _x('Add New', 'products'),
'add_new_item' => __('Add New Product'),
'edit_item' => __('Edit Product'),
'new_item' => __('New Product'),
'view_item' => __('View Product'),
'search_item' => __('Search Products'),
'not_found' => __('No products found'),
'not_found_in_trash' => __('No products found in Trash'),
'parent_item_colon' => '',
'menu_name' => 'Products'
);
$args = array(
'label' => __('Products'),
'labels' => $labels,
'public' => true,
'can_export' => true,
'show_ui' => true,
'_builtin' => false,
'capability_type' => 'post',
'menu_icon' => get_bloginfo('template_url').'/functions/images/product.png',
'hierarchical' => false,
//'rewrite' => array( "slug" => "product" ),
'supports' => array('title'), //MAYBE add thumbnail later!
'show_in_nav_menus' => true
);
register_post_type( 'products', $args);
}
//*********************************************************************//
//**************Custom Taxonomy for Products***************************//
//*********************************************************************//
/* CUSTOM TAXONOMY FOR PRODUCTS POST */
function create_productcategory_taxonomy() {
$labels = array(
'name' => _x( 'Categories', 'taxonomy general name' ),
'singular_name' =>_x( 'Category', 'taxonomy singular name' ),
'search_items' => __( 'Search Categories' ),
'popular_items' => __( 'Popular Categories' ),
'all_items' => __( 'All Categories' ),
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => __( 'Edit Product Category' ),
'update_item' => __( 'Update Product Category' ),
'add_new_item' => __( 'Add New Product Category' ),
'new_item_name' => __( 'New Product Category' ),
'separate_items_with_commas' => __( 'Separate categories with commas' ),
'add_or_remove_items' => __( 'Add or remove product categories' ),
'choose_from_most_used' => __( 'Choose from the most used categories' )
);
register_taxonomy('productcategory', 'products', array (
'label' => __('Product Category'),
'labels' => $labels,
'hierarchical' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'product-category'),
));
}
function create_product_type_taxonomy() {
$labels = array(
'name' => _x( 'Types', 'taxonomy general name' ),
'singular_name' =>_x( 'Type', 'taxonomy singular name' ),
'search_items' => __( 'Search Types' ),
'popular_items' => __( 'Popular Types' ),
'all_items' => __( 'All Types' ),
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => __( 'Edit Product Type' ),
'update_item' => __( 'Update Product Type' ),
'add_new_item' => __( 'Add New Product Type' ),
'new_item_name' => __( 'New Product Type' ),
'menu_name' => __( 'Types' )
);
register_taxonomy('producttype', 'products', array (
'label' => __('Product Type'),
'labels' => $labels,
'hierarchical' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'product-type'),
));
}
add_action( 'init', 'create_productcategory_taxonomy', 0 );
add_action( 'init', 'create_product_type_taxonomy', 0 );
答案 0 :(得分:0)
上周遇到这个问题,我找到了解决方案: 1-创建一个循环遍历(或几个)自定义帖子类型的所有帖子的页面: http://codex.wordpress.org/Pages#A_Page_of_Posts_for_a_Custom_Post_Type这是我在wordpress文档中找到的一个例子。因此,在创建该页面模板后,您只需在管理员中创建一个页面并选择刚刚创建的模板。
2-如果你想在网站的主循环中显示自定义帖子,这段代码效果很好: http://justintadlock.com/archives/2010/02/02/showing-custom-post-types-on-your-home-blog-page
3-最后在wordpress 3.1+中你可以创建单{posttype} .php(例如:single-acme_product.php)来改变自定义帖子类型在显示时的显示方式。
希望能帮到你