日期:2020-11-05 阅读:1086
wordpress自带以下内容类型:
The following post types are reserved and are already used by WordPress.
post
page
attachment
revision
nav_menu_item
custom_css
customize_changeset
oembed_cache
user_request
wp_block
https://wordpress.org/support/article/post-types/
-------------
https://www.codexworld.com/wordpress-custom-post-types-without-plugin/
在主题的function.php加上以下代码:
// Product Custom Post Type
function product_init() {
// set up product labels
$labels = array(
'name' => 'Products',
'singular_name' => 'Product',
'add_new' => 'Add New Product',
'add_new_item' => 'Add New Product',
'edit_item' => 'Edit Product',
'new_item' => 'New Product',
'all_items' => 'All Products',
'view_item' => 'View Product',
'search_items' => 'Search Products',
'not_found' => 'No Products Found',
'not_found_in_trash' => 'No Products found in Trash',
'parent_item_colon' => '',
'menu_name' => 'Products',
);
// register post type
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => 'product'),
'query_var' => true,
'menu_icon' => 'dashicons-randomize',
'supports' => array(
'title',
'editor',
'excerpt',
'trackbacks',
'custom-fields',
'comments',
'revisions',
'thumbnail',
'author',
'page-attributes'
)
);
register_post_type( 'product', $args );
// register taxonomy
register_taxonomy('product_category', 'product', array('hierarchical' => true, 'label' => 'Category', 'query_var' => true, 'rewrite' => array( 'slug' => 'product-category' )));
}
add_action( 'init', 'product_init' );
-------------------
我们在用wordpress做网站时,一般用到的内容类型是page和post.
page就是用于 关于我们,联系我们。
而post一般是用于新闻或博客。
那如果做一个产品页面怎么办。一般也可以放在posts。
但这样就有点乱。
所以要创建一个新的内容类型。
我以前是用插件pods。现在偏向写代码。
使用register_post_type
https://developer.wordpress.org/reference/functions/register_post_type/
在options表里,可以改cpt的名字, register_post_type( 'product2', $args );
-------------
post表里也要改。
---------------
所以,如果要改cpt的话,
第一步,先改自定义里的代码register_post_type( 'dmproduct', $args );。然后再提交下固定链接,go to Settings > Permalinks and re-save your Permalinks
第二步。再改post里的记录。在phpmyadmin里或数据库。
https://wpsites.net/wordpress-admin/how-to-rename-a-custom-post-type/
单个记录可以这样:
// Change Post Type Name Function
function WPTime_change_post_type($id, $new_name){
global $wpdb;
$wpdb->query(" UPDATE $wpdb->posts SET post_type = '$new_name' WHERE ID = $id ");
}
WPTime_change_post_type(999, 'movies');
------------------
如果要改register_taxonomy( 'productlistww2', 'product2', $args ); } 则要改wp_term_taxonomy表。
另外在options表里也要改:(修改子分类对应的id),再提交下固定链接。
-----------
然后相册字段,可以用插件。https://wordpress.org/plugins/attachments/