@CapitanFreeloader

Как сделать выполнять действие при удалении поста wp?

В общем суть такова, необходимо при удалении записи удалять все картинки что были в ней. Пытался через хук before_delete_post вытирать через unlink, но не работает (корзина отключена)
Вот мой код удаления
add_action( 'before_delete_post', 'del_img' );
function del_img( $postid ){
	$content = get_the_content();
	preg_match_all('/\< *[img][^\>]*[src] *= *[\"\']{0,1}([^\"\']*)/i', $content, $out, PREG_PATTERN_ORDER);
    $j = count($out);
    for ($i = 0; $i<$j+1; $i++){
        if($out[1][$i] != ''){
            $path_parts = pathinfo($out[1][$i]);
            if(preg_match('/\bcdn\b/i', $out[1][$i] )){
                if (!file_exists('./'.$path_parts['dirname'])) {
                    unlink($_SERVER['DOCUMENT_ROOT'].$path_parts['dirname'].'/'.basename($out[1][$i]));
                }
            }
        }
    }
}
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 2
rOOse
@rOOse
Frontend developer
не надо регулярки
get_attached_media( $type, $post_id ) или get_children( $args, $output );
и далее:
wp_delete_attachment( $post_id, $force_delete = false )
Ответ написан
Комментировать
dimasmagadan
@dimasmagadan
заменить вот это
$content = get_the_content();

на это
$content_post = get_post($postid);
$content = $content_post->post_content;

дальше не смотрел.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы