Saya mencoba menerapkan sistem posting ujung depan yang menampilkan data taksonomi di beberapa bidang pilih turun bawah. Setiap dropdown diberi nama dengan menggunakan "nama" $arg
di wp_dropdown_categories()
.
wp_dropdown_categories( array(
'taxonomy' => 'location',
'hide_empty' => 0,
'orderby' => 'name',
'order' => 'ASC',
'name' => 'location',
) );
Seperti yang Anda lihat, taksonomi adalah "lokasi" dan nama yang dipilih juga "lokasi".
Saya kemudian menambahkan variabel untuk masing-masing dropdown pilih taksonomi seperti begitu bersama dengan post_title, post_content dll:
$title = trim( $_POST['wpuf_post_title'] );
$content = trim( $_POST['wpuf_post_content'] );
$tags = wpuf_clean_tags( $_POST['wpuf_post_tags'] );
$customcategory = trim( $_POST['customcategory'] );
$cat = trim( $_POST['cat'] );
$location = trim( $_POST['location'] );
$sale_rental = trim( $_POST['sale_rental'] );
$price = trim( $_POST['price'] );
Akhirnya saya menambahkan info tambahan ke dalam array yang siap dikirim oleh wp_insert_post()
. Saya cukup terjebak pada apakah saya melakukan hal yang benar dengan menambahkan tax_input
ke dalam array seperti di bawah ini karena ini adalah apa yang saya pahami dari codex yang perlu saya lakukan.
'tax-input' => array(
$location,
$sale_rental,
$price
),
Sehingga semuanya tampak seperti ini:
$my_post = array(
'post_title' => $title,
'post_content' => $content,
'post_status' => $post_status,
'post_author' => $userdata->ID,
'post_category' => array( $_POST['cat'] ),
'post_type' => $customcategory,
'tags_input' => $tags,
'tax_input' => array(
$location,
$sale_rental,
$price
),
);
$post_id = wp_insert_post( $my_post );
Namun, ketika saya mengirim posting baru, semua data posting standar (dan juga tipe posting kustom saya) masuk ok tapi taksonomi tidak. Saya jelas melakukan sesuatu yang salah tetapi apa?
sumber
Anda dapat melakukannya menggunakan wp_insert_post , tetapi Anda juga harus menentukan taksonomi
tax_input
, sehingga harus terlihat seperti ini:Saya menggunakan
implode()
sehingga$location
bisa menjadi array dengan banyak istilah.Juga, perhatikan bahwa ini hanya berfungsi untuk taksonomi non-hierarkis. Untuk taksonomi hierarkis, Anda harus menyediakan array alih-alih astring.
sumber
Sumber masalahnya
Setelah beberapa penelitian untuk topik ini, saya diberitahu untuk memeriksa bagian dalam (yang saya lakukan). Karena saya mengimpor posting dari umpan eksternal sebagai jenis posting khusus, saya cukup mengatur pengguna
-1
(alih-alih menambahkan pengguna bot). Masalah yang saya temui adalah bahwawp_insert_post()
dengan satutax_input
set, secara internal memeriksa kemampuan pengguna, yang jelas tidak dimiliki oleh pengguna yang sudah ada.SysBot untuk penyelamatan
Solusinya kemudian adalah saya menulis plugin SysBot . Dengan cara ini saya bisa dengan mudah melampirkan pengguna SysBot (yang memiliki peran editor ) ke posting yang baru dibuat dan semuanya bekerja seperti yang diharapkan.
sumber