it-swarm-eu.dev

wp_delete_post () namísto přesunutí do koše smaže příspěvek

Nastavil jsem vlastní typ příspěvku, který může uživatel upravovat z frontendu. Používám wp_delete_post(), abych uživatelům umožnil smazat příspěvek, který vytvořili. Funguje to, ale místo přesunu do koše jsou příspěvky odstraněny.

Snažil jsem se přesouvat příspěvek do koše přes backend a funguje to tak, jak byste to očekávali, příspěvek je přesunut do Bin. Takže si nejsem jistý, proč wp_delete_post nefunguje stejným způsobem, ale místo toho trvale odstraňuje příspěvek.

Podle Codexu WordPress je druhým parametrem funkce wp_delete_post() boolean, který, pokud je nastaven na hodnotu false, by měl tento příspěvek přesunout do koše, nikoli trvale odstranit. Ve výchozím nastavení je druhý parametr nastaven na hodnotu false, takže se jedná o můj kód:

wp_delete_post( $race->ID );

Jsem si vědom toho, že místo toho můžu použít funkci wp_trash_post() (což je vlastně to, co používám teď, protože wp_delete_post, nedělá to, co chci, abych to dělal), ale rád bych zjistil, proč funkce wp_delete_post() nefunguje správně.

2
Ilona

Sledujte řádek kódu

https://core.trac.wordpress.org/browser/tags/4.9/src/wp-includes/post.php#L2467

if ( ! $force_delete && ( 'post' === $post->post_type || 'page' === $post->post_type ) && 'trash' !== get_post_status( $postid ) && EMPTY_TRASH_DAYS ) {
    return wp_trash_post( $postid );
}

$ force_delete pracuje pouze s 'post' a 'page', nepracuje s vlastním typem příspěvku

2