WordPress ||自定义 post 类型、永久链接和数字
WordPress || Custom post types, permalinks & numbers
这是猫窝。我有一个自定义 post 类型,称为 "cat"。
然后我有一个可用性分类法,"available" 和 "homed"。
一切正常...直到出现重复的猫名。例如,如果 Milo 进来一个月,然后一年后,另一个 Milo 进来。显然,WordPress 将创建 siteurl/cat/milo/,然后对于第二个,创建 siteurl/cat/milo-2/.
原来的 Milo 工作正常...一旦输入数字,milo-2 就不起作用,并重定向到 404。
自定义Post类型
function cat_post_type() {
$labels = array(
'name' => _x( 'Cats', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Cat', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Cats', 'text_domain' ),
'name_admin_bar' => __( 'Cats', 'text_domain' ),
'parent_item_colon' => __( 'Parent Cat:', 'text_domain' ),
'all_items' => __( 'All Cats', 'text_domain' ),
'add_new_item' => __( 'Add Cat', 'text_domain' ),
'add_new' => __( 'New Cat', 'text_domain' ),
'new_item' => __( 'New Cat', 'text_domain' ),
'edit_item' => __( 'Edit Cat', 'text_domain' ),
'update_item' => __( 'Update Cat', 'text_domain' ),
'view_item' => __( 'View Cat', 'text_domain' ),
'search_items' => __( 'Search cats', 'text_domain' ),
'not_found' => __( 'No cats found', 'text_domain' ),
'not_found_in_trash' => __( 'No cats found in Trash', 'text_domain' ),
);
$args = array(
'label' => __( 'cats', 'text_domain' ),
'description' => __( 'All cats', 'text_domain' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'thumbnail', 'comments'),
'taxonomies' => array( 'available', 'homed' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-smiley',
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'post',
);
register_post_type( 'cat', $args );
}
分类法
// Hook into the 'init' action
add_action( 'init', 'cat_post_type', 0 );
function add_custom_taxonomies() {
// Add new "Locations" taxonomy to Posts
register_taxonomy('availability', 'cat', array(
// Hierarchical taxonomy (like categories)
'hierarchical' => true,
// This array of options controls the labels displayed in the WordPress Admin UI
'labels' => array(
'name' => _x( 'Cats Availability', 'taxonomy general name' ),
'singular_name' => _x( 'Cat Availability', 'taxonomy singular name' ),
'search_items' => __( 'Search Cat Availability' ),
'all_items' => __( 'All Availability' ),
'parent_item' => __( 'Parent Availability' ),
'parent_item_colon' => __( 'Parent Availability:' ),
'edit_item' => __( 'Edit Availability' ),
'update_item' => __( 'Update Availability' ),
'add_new_item' => __( 'Add New Availability' ),
'new_item_name' => __( 'New Availability' ),
'menu_name' => __( 'Availability' ),
),
// Control the slugs used for this taxonomy
'rewrite' => array(
'slug' => 'cats', // This controls the base slug that will display before each term
'with_front' => false, // Don't display the category base before "/locations/"
'hierarchical' => true // This will allow URL's like "/locations/boston/cambridge/"
),
));
}
add_action( 'init', 'add_custom_taxonomies', 0 );
我们认为这可能是数据库中的某些冲突...尝试重新保存 permalinks,删除未使用的数据库条目,禁用所有插件...没有。
手动将猫重命名为 milo_ 工作正常,但其中的任何数字只会发回我的 404。
使用 Starkers 响应式主题,没有子主题。标准 htaccess。
我是不是遗漏了一些明显的东西?
此处未完成的站点 - 找到一只猫,其 link...http://catsnottingham.zellement.com/cats/homed/
我已经解决了这个问题 - 我认为这一定是数据库冲突、损坏或错误,所以我重新开始安装新的 WordPress,这已经解决了这个问题。
我的一部分认为使用 "cat" 作为 CPT 可能与类别冲突...不知何故。
这是猫窝。我有一个自定义 post 类型,称为 "cat"。
然后我有一个可用性分类法,"available" 和 "homed"。
一切正常...直到出现重复的猫名。例如,如果 Milo 进来一个月,然后一年后,另一个 Milo 进来。显然,WordPress 将创建 siteurl/cat/milo/,然后对于第二个,创建 siteurl/cat/milo-2/.
原来的 Milo 工作正常...一旦输入数字,milo-2 就不起作用,并重定向到 404。
自定义Post类型
function cat_post_type() {
$labels = array(
'name' => _x( 'Cats', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Cat', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Cats', 'text_domain' ),
'name_admin_bar' => __( 'Cats', 'text_domain' ),
'parent_item_colon' => __( 'Parent Cat:', 'text_domain' ),
'all_items' => __( 'All Cats', 'text_domain' ),
'add_new_item' => __( 'Add Cat', 'text_domain' ),
'add_new' => __( 'New Cat', 'text_domain' ),
'new_item' => __( 'New Cat', 'text_domain' ),
'edit_item' => __( 'Edit Cat', 'text_domain' ),
'update_item' => __( 'Update Cat', 'text_domain' ),
'view_item' => __( 'View Cat', 'text_domain' ),
'search_items' => __( 'Search cats', 'text_domain' ),
'not_found' => __( 'No cats found', 'text_domain' ),
'not_found_in_trash' => __( 'No cats found in Trash', 'text_domain' ),
);
$args = array(
'label' => __( 'cats', 'text_domain' ),
'description' => __( 'All cats', 'text_domain' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'thumbnail', 'comments'),
'taxonomies' => array( 'available', 'homed' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-smiley',
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'post',
);
register_post_type( 'cat', $args );
}
分类法
// Hook into the 'init' action
add_action( 'init', 'cat_post_type', 0 );
function add_custom_taxonomies() {
// Add new "Locations" taxonomy to Posts
register_taxonomy('availability', 'cat', array(
// Hierarchical taxonomy (like categories)
'hierarchical' => true,
// This array of options controls the labels displayed in the WordPress Admin UI
'labels' => array(
'name' => _x( 'Cats Availability', 'taxonomy general name' ),
'singular_name' => _x( 'Cat Availability', 'taxonomy singular name' ),
'search_items' => __( 'Search Cat Availability' ),
'all_items' => __( 'All Availability' ),
'parent_item' => __( 'Parent Availability' ),
'parent_item_colon' => __( 'Parent Availability:' ),
'edit_item' => __( 'Edit Availability' ),
'update_item' => __( 'Update Availability' ),
'add_new_item' => __( 'Add New Availability' ),
'new_item_name' => __( 'New Availability' ),
'menu_name' => __( 'Availability' ),
),
// Control the slugs used for this taxonomy
'rewrite' => array(
'slug' => 'cats', // This controls the base slug that will display before each term
'with_front' => false, // Don't display the category base before "/locations/"
'hierarchical' => true // This will allow URL's like "/locations/boston/cambridge/"
),
));
}
add_action( 'init', 'add_custom_taxonomies', 0 );
我们认为这可能是数据库中的某些冲突...尝试重新保存 permalinks,删除未使用的数据库条目,禁用所有插件...没有。
手动将猫重命名为 milo_ 工作正常,但其中的任何数字只会发回我的 404。
使用 Starkers 响应式主题,没有子主题。标准 htaccess。
我是不是遗漏了一些明显的东西?
此处未完成的站点 - 找到一只猫,其 link...http://catsnottingham.zellement.com/cats/homed/
我已经解决了这个问题 - 我认为这一定是数据库冲突、损坏或错误,所以我重新开始安装新的 WordPress,这已经解决了这个问题。
我的一部分认为使用 "cat" 作为 CPT 可能与类别冲突...不知何故。