无法将自定义分类法添加到 CPT
Can't add Custom taxonomy to CPT
我已经尝试了好几天了,就是无法正常工作。
我有一个自定义 Post 类型,它是一个条目,它包含有关选民的信息。但我想根据选民投票的内容对选民进行分类,因此我为此创建了一个自定义分类法,但即使使用静态 post ID,它也不会将该术语添加到 post。
<?php
//Custom post type for voting
function create_entry_post_type() {
register_post_type( 'entry',
array(
'labels' => array(
'name' => __( 'Entries' ),
'singular_name' => __( 'Entry' )
),
'public' => true,
'has_archive' => true,
'taxonomies' => array('votes')
)
);
}
add_action( 'init', 'create_entry_post_type' );
//Adds entry to wordpress
if(isset($_POST['submit'])){
//Insert data
$post_id = wp_insert_post(array(
'post_title' => 'Title',
'post_content' => 'This is a vote',
'post_type' => 'entry',
));
//Array for values in entry-post type
$values = array(
'field_5ad8868851c3b' => $_POST['firstname'], //Firstname
'field_5ad8869d51c3c' => $_POST['lastname'], //Lastname
'field_5ad886d851c3d' => $_POST['email'], //Email
'field_5ad886f551c3e' => $_POST['phone'], //Phone
'field_5ad9d4bfc5860' => $_POST['vote'], //Vote
'field_5ad9d6f1273ff' => $_POST['coupon_type'] // Coupon Type (sms/email)
);
//Insert for each field
foreach ($values as $key => $value) {
update_field($key, $value, $post_id);
};
sendToClearOn($_POST["coupon_type"]);
}
function sendToClearOn($coupon_type){
// TO-DO
}
//
// Testing taxonomies
//
function votes_init() {
// create a new taxonomy
register_taxonomy(
'votes',
'entry',
array(
'label' => __( 'Votes' ),
'rewrite' => array( 'slug' => 'vote' ),
'capabilities' => array(
'assign_terms' => 'edit_guides',
'edit_terms' => 'publish_guides'
)
)
);
}
add_action( 'init', 'votes_init' );
function add_term(){
wp_set_object_terms( 250, 'Bob', 'vote' );
}
add_action( 'init', 'add_term' );
?>
环顾四周后,我发现我需要优先考虑 init 挂钩。
add_action( 'init', 'function_name', $priority);
经过一些测试后,我发现大约 50 个就不错了,但你自己试试看。
我已经尝试了好几天了,就是无法正常工作。
我有一个自定义 Post 类型,它是一个条目,它包含有关选民的信息。但我想根据选民投票的内容对选民进行分类,因此我为此创建了一个自定义分类法,但即使使用静态 post ID,它也不会将该术语添加到 post。
<?php
//Custom post type for voting
function create_entry_post_type() {
register_post_type( 'entry',
array(
'labels' => array(
'name' => __( 'Entries' ),
'singular_name' => __( 'Entry' )
),
'public' => true,
'has_archive' => true,
'taxonomies' => array('votes')
)
);
}
add_action( 'init', 'create_entry_post_type' );
//Adds entry to wordpress
if(isset($_POST['submit'])){
//Insert data
$post_id = wp_insert_post(array(
'post_title' => 'Title',
'post_content' => 'This is a vote',
'post_type' => 'entry',
));
//Array for values in entry-post type
$values = array(
'field_5ad8868851c3b' => $_POST['firstname'], //Firstname
'field_5ad8869d51c3c' => $_POST['lastname'], //Lastname
'field_5ad886d851c3d' => $_POST['email'], //Email
'field_5ad886f551c3e' => $_POST['phone'], //Phone
'field_5ad9d4bfc5860' => $_POST['vote'], //Vote
'field_5ad9d6f1273ff' => $_POST['coupon_type'] // Coupon Type (sms/email)
);
//Insert for each field
foreach ($values as $key => $value) {
update_field($key, $value, $post_id);
};
sendToClearOn($_POST["coupon_type"]);
}
function sendToClearOn($coupon_type){
// TO-DO
}
//
// Testing taxonomies
//
function votes_init() {
// create a new taxonomy
register_taxonomy(
'votes',
'entry',
array(
'label' => __( 'Votes' ),
'rewrite' => array( 'slug' => 'vote' ),
'capabilities' => array(
'assign_terms' => 'edit_guides',
'edit_terms' => 'publish_guides'
)
)
);
}
add_action( 'init', 'votes_init' );
function add_term(){
wp_set_object_terms( 250, 'Bob', 'vote' );
}
add_action( 'init', 'add_term' );
?>
环顾四周后,我发现我需要优先考虑 init 挂钩。
add_action( 'init', 'function_name', $priority);
经过一些测试后,我发现大约 50 个就不错了,但你自己试试看。