Wp_insert_post এর সাথে পোস্ট করতে বিভাগের সংযুক্তি সংযুক্ত করা হচ্ছে


17

আমি একটি ফ্রন্ট এন্ড পোস্টিং সিস্টেম বাস্তবায়নের চেষ্টা করছি যা বেশ কয়েকটি ড্রপডাউন সিলেক্ট ফিল্ডগুলিতে কর বিভাগের ডেটা দেখায়। Dropdowns প্রত্যেকটি "নাম" ব্যবহার করে নামকরণ করা হয় $argমধ্যে wp_dropdown_categories()

wp_dropdown_categories( array(
    'taxonomy'      => 'location',
    'hide_empty'    => 0,
    'orderby'       => 'name',
    'order'         => 'ASC',
    'name'          => 'location',
) );

আপনি দেখতে পাচ্ছেন যে বিভাগটি "অবস্থান" এবং নির্বাচিত নামটিও "অবস্থান"।

তারপরে আমি প্রতিটি পোস্টের শিরোনাম, পোস্ট_সামগ্রী, পোস্ট_কন্টেন্ট ইত্যাদির মতো ড্রপডাউনগুলি বেছে নেব:

$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'] );

অবশেষে আমি পাঠাতে প্রস্তুত একটি অ্যারেতে অতিরিক্ত তথ্য যুক্ত করি wp_insert_post()tax_inputনীচের মতো অ্যারে যুক্ত করে আমি সঠিক জিনিসটি করছি কিনা তা নিয়ে আমি বেশ আটকে আছি কারণ কোডেক্স থেকে আমার যা করা দরকার তা এটিই আমি বুঝতে পারি।

'tax-input' => array( 
    $location,
    $sale_rental,
    $price
),

যাতে এটির মতো দেখতে সমস্ত শেষ হয়:

$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 );

যাইহোক, আমি যখন নতুন পোস্টটি জমা দিলাম তখন সমস্ত স্ট্যান্ডার্ড পোস্ট ডেটা (এবং আমার কাস্টম পোস্টের ধরণ) ঠিক যায় তবে ট্যাক্সোনমিগুলি তা করে না। আমি স্পষ্টতই কিছু ভুল করছি তবে কী?

উত্তর:


25

wp_set_object_termsপ্রতিটি বিভাগের জন্য পোস্ট আইডি থাকার পরে ব্যবহার করুন :

...
$post_id = wp_insert_post( $my_post );
wp_set_object_terms( $post_id, $location, 'location' );
wp_set_object_terms( $post_id, $sale_rental, 'sale_rental' );
wp_set_object_terms( $post_id, $price, 'price' );

আমি শুধু জানি না আমি আপনার সহায়তা ছাড়া কোথায় থাকব, প্রথমবার কাজ করেছি ... অনেক ধন্যবাদ বেনটারনেট। উত্তর হিসাবে চিহ্নিত
মার্টিনজেজে

খুশি আমি সাহায্য করতে পারি :)
বেন্টারনেট

$ অবস্থান এবং $ বিক্রয়_আরজিক অ্যারেগুলি পূর্ণসংখ্যা বা স্ট্রিংগুলির?
ডগ

5

আপনি এটি wp_insert_post ব্যবহার করে করতে পারেন , তবে আপনাকে অবশ্যই অবশ্যই কর আদায় নির্দিষ্ট করতে হবে tax_input, সুতরাং এটি দেখতে এটি দেখতে হবে:

$item['tax_input'] = array (
    'location'      => implode( ',', $location ),
    'sale_rental'   => implode( ',', $sale_rental ),
    'price'         => implode( ',', $price ),
)

আমি implode()তাই ব্যবহার করি $locationযা একাধিক পদগুলির সাথে একটি অ্যারে হতে পারে।

এছাড়াও, লক্ষ্য করুন যে এটি কেবল অ-শ্রেণিবদ্ধ ট্যাক্সনোমির জন্য কাজ করে। শ্রেণিবদ্ধ শুল্কের জন্য আপনাকে অবাক হওয়ার পরিবর্তে একটি অ্যারে সরবরাহ করতে হবে।


2

সমস্যার উত্স

এই বিষয়ে কিছু গবেষণা করার পরে, আমাকে ইন্টার্নালগুলি পরীক্ষা করতে বলা হয়েছিল (যা আমি করেছি)। আমি যেমন কাস্টম পোস্ট ধরণের হিসাবে কোনও বাহ্যিক ফিড থেকে পোস্টগুলি আমদানি করছিলাম তখন আমি কেবলমাত্র ব্যবহারকারীকে -1(বট ব্যবহারকারী যুক্ত করার পরিবর্তে) সেট করেছিলাম । আমি যে সমস্যাটি চালিয়েছি তা হ'ল wp_insert_post()একটি দিয়েtax_input সেট অভ্যন্তরীণভাবে কোনও ব্যবহারকারীর সক্ষমতা যাচাই করে, যা কোনও অস্তিত্বহীন ব্যবহারকারীর স্পষ্টতই নেই।

উদ্ধার জন্য SysBot

তারপরে সমাধানটি হ'ল আমি সিসবট প্লাগইনটি লিখেছিলাম । এইভাবে আমি সিসবট ব্যবহারকারীকে (যা সম্পাদকের ভূমিকা আছে ) কেবলমাত্র সেই সদ্য নির্মিত পোস্টের সাথে সংযুক্ত করতে পারি এবং সবকিছু প্রত্যাশিতভাবে কাজ করেছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.