Wp_insert_post এর জন্য পোস্ট_ডেটের সঠিক বিন্যাসকরণ?


10

Wp_insert_post ( ট্র্যাক ) ব্যবহার করে সামনের প্রান্ত থেকে পোস্ট জমা দেওয়ার সময় পোস্টের তারিখ সংজ্ঞায়নের সঠিক উপায় কী ?

আমার স্নিপেটটি এখন মাইএসকিএল সময় দিয়ে প্রকাশ করছে ...

if (isset ($_POST['date'])) {
    $postdate = $_POST['Y-m-d'];
}
else {
    $postdate = $_POST['2011-12-21'];
}

// ADD THE FORM INPUT TO $new_post ARRAY
$new_post = array(
'post_title'    =>   $title,
'post_content'  =>   $description,
'post_date'     =>   $postdate,
'post_status'   =>   'publish',
'post_parent' => $parent_id,
'post_author' => get_current_user_id(),
);

//SAVE THE POST
$pid = wp_insert_post($new_post);

উত্তর:


23

আপনি যদি কোনও পোস্ট_ডেট যোগ না করেন তবে ওয়ার্ডপ্রেস এটি বর্তমান তারিখ এবং সময় দিয়ে স্বয়ংক্রিয়ভাবে পূরণ করে।

অন্য তারিখ এবং সময় নির্ধারণ করা [ Y-m-d H:i:s ]সঠিক কাঠামো। আপনার কোড সহ নীচের একটি উদাহরণ।

$postdate = '2010-02-23 18:57:33';

$new_post = array(
   'post_title'    =>   $title,
   'post_content'  =>   $description,
   'post_date'     =>   $postdate,
   'post_status'   =>   'publish',
   'post_parent'   =>   $parent_id,
   'post_author'   =>   get_current_user_id(),
);

//SAVE THE POST
$pid = wp_insert_post($new_post);

থ্যাঙ্কস রব! যোগ করার পদ্ধতি $postdate = date('2010-02-23 18:57:33');আসলে তোলে ইনপুট বক্স কাজ বন্ধ, সম্ভবত Chrome যে মাত্র একটি বাগ যদিও ... এর
M-torin

1
আমি নিজে চেষ্টা করেছি এবং এটি কাজ করে। হতে পারে আপনার সমস্যাটি আপনার কোডের অন্য কোথাও।
রব ভার্মির

আমি সেই তারিখটি তৈরির চেষ্টা করেছি এবং এটি ফিরে আসছেNotice: A non well formed numeric value encountered in C:\xampp\htdocs\wordpress\wp-includes\functions.php on line 4028
এরি

2
হওয়া উচিত $postdate = '2010-02-23 18:57:33';, কারণ date()প্রক্রিয়া করার জন্য আক্ষরিক তারিখের ফর্ম্যাট প্রয়োজন, সংখ্যা নয়। বা$postdate = date('Y-m-d H:i:s', strtotime('2010-02-23 18:57:33'));
অ্যালেক্স কে

3

আপনার তারিখটিকে ওয়ার্ডপ্রেস (মাইএসকিউএল ডেটটাইম) ফর্ম্যাটে রূপান্তর করতে, এটি চেষ্টা করুন:

$date_string = "Sept 11, 2001"; // or any string like "20110911" or "2011-09-11"
// returns: string(13) "Sept 11, 2001"

$date_stamp = strtotime($date_string);
// returns: int(1000166400)

$postdate = date("Y-m-d H:i:s", $date_stamp);
// returns: string(19) "2001-09-11 00:00:00"

$new_post = array(
    // your other arguments
   'post_date'     =>   $postdate
);

$pid = wp_insert_post($new_post);

বা অবশ্যই আপনি যদি সেক্সি হতে চান তবে এটি করুন:

'post_date'     => date("Y-m-d H:i:s", strtotime("Sept 11, 2001"))

এটি ইউনিক্স টাইমস্ট্যাম্প, বিশেষত date("Y-m-d H:i:s", $date_stamp)কোডটি বিন্যাস করার জন্য খুব সহায়ক ।
ডেভিড

2

আপনি বিন্যাস করতে পারবে না $_POST['date']এই রকম ... আপনি চালানোর আছে করব মান থেকে $_POST['date']কিছু মাধ্যমে মত $postdate = date( $_POST['date'] )... এছাড়া ব্লগ সেটিংসকে আহ্বান get_option সম্ভাবনা আছে। কোডেক্সে বিকল্প উল্লেখ দেখুন।


তারিখ ব্যবহার করে পোস্টিংটি প্রকৃতপক্ষে ভেঙে যায় এবং 404 ত্রুটি ফিরে আসে। দিকনির্দেশনার জন্য কায়সারকে ধন্যবাদ!
এম-টরিন

2

সম্প্রদায়ের জন্য এখানে আমার চূড়ান্ত কার্যকরী কোড:

হেডার

$year = $_REQUEST['year'];
$month = $_REQUEST['month'];
$day = $_REQUEST['day'];
$postdate =  $year . "-" . $month . "-" . $day . " 08:00:00";

$new_post = array(
    'post_title'    =>  $title,
    'post_content'  =>  $description,
    'post_status'   =>  'publish',
    'post_author'   =>  get_current_user_id(),
    'post_date'     =>  $postdate
);

0

গুগল জুড়ে এসেছিল। আমি এটির পুরানো জানি তবে এর কোনও নির্দিষ্ট উত্তর নেই। ওয়ার্ডপ্রেস কোড current_time( 'mysql' )wp_update_post ফাংশনে তারিখ / সময় বাঁচাতে ব্যবহার করে! এটি পছন্দসই তারিখের ফর্ম্যাট তৈরি করবে।

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