WordPress
Utwórz post programowo
Szukaj…
Składnia
- wp_insert_post (tablica $ args, bool $ wp_error);
Parametry
Parametr | Opis |
---|---|
$ args (wymagana tablica) | Tablica kluczowych wartości poniższych elementów. |
$ wp_error (Boolean Opcjonalne) | W przypadku niepowodzenia zwróć błąd WP_Error. |
Uwagi
Argumenty
Następna tabela pokazuje listę elementów, których możesz użyć wewnątrz pierwszego parametru (Array).
Parametr | Opis |
---|---|
ID | (Int) Identyfikator postu. Jeśli jest równy wartości innej niż 0, post z tym identyfikatorem zostanie zaktualizowany. Domyślnie 0. |
post_author | (Int) Identyfikator użytkownika, który dodał post. Domyślnie jest to bieżący identyfikator użytkownika. |
Data wysłania | (String) Data wpisu. Domyślnie jest to aktualny czas. |
post_date_gmt | (String) Data wpisu w strefie czasowej GMT. Domyślnie jest to wartość $ post_date. |
Treść postu | (Mieszane) Treść postu. Domyślnie pusty. |
post_content_filtered | (String) Przefiltrowana treść postu. Domyślnie pusty. |
post_title | (String) Tytuł postu. Domyślnie pusty. |
post_category | (Array) Tablica wartości kategorii post. |
post_excerpt (String) Fragment postu. Domyślnie pusty. | |
post_status | (String) Status postu. Domyślna wersja robocza. |
post_type | (String) Typ postu. Domyślny post. |
comment_status | (String) Czy post może akceptować komentarze. Akceptuje otwarte lub zamknięte. Wartość domyślna to wartość opcji default_comment_status. |
ping_status | (String) Czy post może akceptować pingi. Akceptuje otwarte lub zamknięte. Wartość domyślna to wartość opcji default_ping_status. |
post_password | (String) Hasło dostępu do postu. Domyślnie pusty. |
post_name | (String) Nazwa postu lub ślimaka. Domyślnie jest to oczyszczony tytuł postu podczas tworzenia nowego postu. |
to_ping | (String) Lista adresów URL do pingowania rozdzielonych spacjami lub znakami przewijania. Domyślnie pusty. |
pingowany | (String) Lista pingowanych adresów URL oddzielonych spacjami lub znakami przewijania Domyślnie pusty. |
post_modified | (String) Data ostatniej modyfikacji postu. Domyślnie jest to aktualny czas. |
post_modified_gmt | (String) Data ostatniej modyfikacji postu w strefie czasowej GMT. Domyślnie jest to aktualny czas. |
post_parent | (Int) Ustaw to dla wpisu, do którego należy, jeśli istnieje. Domyślnie 0. |
menu_order | (Int) Kolejność wyświetlania postu. Domyślnie 0. |
post_mime_type | (String) Typ MIME postu. Domyślnie pusty. |
przewodnik | (Ciąg) Globalny unikalny identyfikator do odniesienia do postu. Domyślnie pusty. |
Podatek | (Tablica) Tablica terminów taksonomicznych wpisywanych według ich nazwy taksonomicznej. Domyślnie pusty. |
meta_input | (Array) Tablica wartości meta postów wpisywanych przez ich klucz meta postu. Domyślnie pusty. |
Unikaj zduplikowanych postów
Kiedy wykonasz tę funkcję, prawdopodobnie dostaniesz zduplikowany post, przynajmniej tak mi się stało. (Możesz to sprawdzić w sekcji Post WordPress)
Znalazłem rozwiązanie :
if( !get_page_by_title( $title, 'OBJECT', 'post' ) ){
$my_post = array('post_title' => $title,
'post_content' => 'Content',
'tags_input' => $tags,
'post_category' => array(2),
'post_status' => 'publish'
);
$result = wp_insert_post( $my_post );
}
Wyjaśnienie
Przed zapisaniem nowego postu sprawdź, czy nowy post już istnieje, używając tytułu postu jako parametru, jeśli nie ma tytułu postu, możesz zapisać nowy post.
Sprawdź dokumentację get_page_by_title tutaj .
Wprowadzenie
Czasami mamy inny edytor gdzieś indziej niż TinyMCE (domyślny edytor Wordpress). Dzieje się tak, gdy tworzymy własny motyw, wtyczkę lub coś konkretnego; i musimy pisać i manipulować rodzajem postu i zapisać go w naszej Bazie danych WP.
Tak więc, jeśli jesteś w takiej sytuacji, możesz użyć funkcji Wordpress o nazwie:
wp_insert_post( array $args, bool $wp_error );
Utwórz post podstawowy
$basic_post_args = array(
'post_title' => 'My Basic Post',
'post_content' => 'This is a basic content',
'post_status' => 'publish',
'post_author' => 1,
'post_category' => array(8, 59)
);
wp_insert_post( $basic_post_args );
Utwórz stronę podstawową
$basic_page_args = array(
'post_title' => 'My Basic Page',
'post_content' => 'This is a basic content',
'post_type' => 'page',
'post_status' => 'publish',
'post_author' => 1
);
wp_insert_post( $basic_page_args );