Wp_insert_post के लिए post_date का उचित प्रारूपण?


10

Wp_insert_post ( Trac ) का उपयोग करते हुए सामने के छोर से एक पोस्ट सबमिट करते समय पोस्ट डेट को परिभाषित करने का उचित तरीका क्या है ?

मेरा स्निपेट अब mysql समय के साथ प्रकाशित हो रहा है ...

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');वास्तव में जोड़ने से इनपुट बॉक्स काम करना बंद कर देते हैं, शायद यह क्रोम में सिर्फ एक बग है ...
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

अपनी तिथि को Wordpress (MySQL DATETIME) प्रारूप में बदलने के लिए, यह प्रयास करें:

$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']इस तरह प्रारूपित नहीं कर सकते हैं ... आपको कुछ इस तरह से मूल्य चलाना होगा ... ब्लॉग सेटिंग्स के लिए get_option को कॉल करने की संभावना भी है। कोडेक्स में विकल्प संदर्भ देखें।$_POST['date']$postdate = date( $_POST['date'] )


दिनांक का उपयोग करने से वास्तव में पोस्टिंग टूट गई और 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 फ़ंक्शन में दिनांक / समय बचाने के लिए उपयोग करता है! यह वांछित तिथि प्रारूप उत्पन्न करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.