post_status => publish nu funcționează
Am un formular în frontend care permite utilizatorilor să trimită o postare.
Așa stochez datele când este trimisă o postare:
if ( isset( $_POST['submitted'] )) {
$post_information = array(
'post_title' => wp_strip_all_tags( $_POST['postTitle'] ),
'post_content' => $_POST['postContent'],
'post_type' => 'post',
'post_status' => 'publish'
);
$new_post = wp_insert_post( $post_information );
Postarea nu apare în pagina mea de postări decât dacă merg în dashboard și apăs butonul ACTUALIZARE.
AȘAA INTEROGHEZ POSTĂRILE MELE:
$args = array(
'posts_per_page' => 5,
'paged' => $paged,
'meta_query' => array(
array( 'key' => '_wti_like_count','value' => 5, 'compare' => '<=','type' => 'numeric')
)
);
query_posts( $args );
Cum pot face ca postările trimise să fie publicate automat?
Postarea este adăugată și publicată, dar deoarece aveți interogarea meta și cheia meta nu este adăugată când trimiteți postarea din frontend, aceasta nu apare. Utilizați următorul cod care adaugă metadatele conform necesităților.
if ( isset( $_POST['submitted'] ) ) {
$post_information = array(
'post_title' => wp_strip_all_tags( $_POST['postTitle'] ),
'post_content' => $_POST['postContent'],
'post_type' => 'post',
'post_status' => 'publish'
);
$new_post = wp_insert_post( $post_information );
// Adaugă metadatele postării
add_post_meta( $new_post, '_wti_like_count', 0, true );
add_post_meta( $new_post, '_wti_unlike_count', 0, true );
add_post_meta( $new_post, '_wti_total_count', 0, true );
}

Încă un mic lucru, prietene! dacă adaug o valoare astfel: add_post_meta( $new_post, '_wti_like_count', 1, true ); de ce valoarea 1 nu apare în frontend? Se afișează doar 0

Datele pe care le vezi în frontend sunt preluate din tabelul pluginului wti_like_post
. Meta datele sunt doar adăugate postării pentru a putea fi folosite în interogări personalizate precum cea pe care o ai mai sus. Pentru a menține lucrurile organizate, întotdeauna se adaugă 0 la postare când este creată. Pe măsură ce utilizatorii votează pentru acea postare, ambele valori (din tabelul pluginului și din meta date) se actualizează corespunzător.

Rețineți că acum puteți face acest lucru în interiorul funcției wp_insert_post utilizând atributul 'meta_input' (de exemplu meta_input => array('meta_field_name => 'meta field value')
)

Nu sunt sigur, dar cred că este din cauză că nu ai adăugat autorul în $post_information
:
if( isset($_POST['submitted']) ):
global $user_ID;
$post_information = array(
'post_title' => wp_strip_all_tags( $_POST['postTitle'] ),
'post_content' => $_POST['postContent'],
'post_type' => 'post',
'post_status' => 'publish',
'post_author' => $user_ID,
'post_date' => date('Y-m-d H:i:s')
);
$post_id = wp_insert_post($post_information);
if (!$post_id) {
wp_die('Eroare');
}
endif;
