[Woordpress] Dodanie posta z poziomu PHP

  • Start
  • Blog
  • [Woordpress] Dodanie posta z poziomu PHP
08-02-2018

Tworząc import postów do wordpresa możemy posłużyć się poniższym kodem aby dodąć wpis:

Korzystamy z wbudowanych funkcji Wordpress-a więc zaczynamy od 

require( $katalog_z_wordpresem . '/wp-load.php' );

następnie

$my_post = array(
                  'post_title'    => wp_strip_all_tags( (string)$tytuł ),
                  'post_content'  => (string)$tresc_wpisu,
                  'post_status'   => 'publish',
                  'post_author'   =>  $userid,
                  'post_category' => array( $kategoria_id ),
                  'post_type'      => $typ_postu,
                );
            
            $post_meta=array(
                    'nazwa_wartosci_meta'            => (string) $wartosc_meta,
                  [ ... tu kolejne wartośći meta do postu ..]
                );

$out =wp_insert_post( $my_post ); // funkcja wp do dodania wpisu

foreach($post_meta as $k => $v)
                        {
                            if ( ! add_post_meta( $out, $k, $v, true ) ) { 
                               update_post_meta( $out, $k, $v );
                            }
                        }

// funkcje dodające lub zmiejające istniejące meta dane postu

 

Możemy także dodać obrazy [załączniki] do posta i jego miniaturę korzystając z kodu

 

$filename =  $dir."/".$plik ; // scieżka do pliku 
$filenameonly = (string) $plik;
                                        
$wp_upload_dir = wp_upload_dir();
copy($filename, $wp_upload_dir['path']."/import_".$filenameonly); //wp doda zdjęcie [załącznik] jeżeli będzie w katalogu upload dlatego kopiujemy tam nasz plik
$newname = $wp_upload_dir['path']."/import_".$filenameonly;
$filetype = wp_check_filetype( basename( $filename ), null );
                                        
 $attachment = array(
    'guid'           => $wp_upload_dir['url'] . '/' ."import_".$filenameonly, 
    'post_mime_type' => $filetype['type'],
     'post_title'     => sanitize_title((string)$nazwa_dla_pliku).preg_replace( '/\.[^.]+$/', '', basename( $filename ) ),
     'post_content'   => '',
      'post_status'    => 'inherit'
    );
$attachment_id = wp_insert_attachment( $attachment, $newname, $post_id );
 require_once( ABSPATH . 'wp-admin/includes/image.php' );
 $attach_data = wp_generate_attachment_metadata( $attachment_id, $newname );
 wp_update_attachment_metadata( $attachment_id, $attach_data );
/możęmy też ustawić nasz plik jako miniaturę wpisu                                       

$res2= set_post_thumbnail( $post_id, $attachment_id );
                                          

Poprzedni wpis Nastepny wpis