Używam niestandardowych postów, w których nie potrzebuję tytułu.
To powoduje, że Wordpress ustawia tytuły moich postów na „Auto Draft”.
Chciałbym zmienić wartość tytułu na coś innego, obliczonego z innych pól w moim poście.
Jak mogę to zrobić za pomocą save_post lub w inny sposób?
custom-post-types
save-post
Tsahi Levent-Levi
źródło
źródło
register_post_type()
połączenie.Odpowiedzi:
Ta najprostsza metoda polegałaby na edycji danych w miejscu, w którym zostały wstawione, zamiast późniejszej aktualizacji, przy użyciu
wp_insert_post_data
zamiastsave_post
. Działa to na tworzenie nowego postu lub aktualizowanie istniejącego postu bez zmian. Pozwala to także uniknąć niebezpieczeństwa tworzenia nieskończonej pętli, wyzwalając jąupdate_post
wewnątrzsave_post
.źródło
Miałem dokładnie taką samą potrzebę, więc napisałem tę funkcję - która działa. Zmodyfikuj go do swoich potrzeb. Mam nadzieję że to pomoże.
źródło
Wypróbuj filtr default_title :
źródło
$post
? Przeczytaj wstępne pytanie i komentarze poniżej. Automatycznie wygenerowany tytuł postu nie jest wymagany. Potrzebny jest tylko fałszywy tytuł postu (zamiennik WordPress „Auto Draft”).Oto rozwiązanie, które wykorzystuje zmienną statyczną, aby zapobiec nieskończonej pętli. Pozwala to bezpiecznie wywoływać
wp_update_post()
funkcję podpiętą do funkcjisave_post
.Uwaga: Aby ograniczyć tę funkcjonalność do określonego typu postów, użyj haka save_post _ {$ post-> post_type} zamiast save_post.
źródło