Домой WordPress WordPress: Проблемы и решения Как удалить конкретный пост?
15ответ(ов) в теме
koqpo1
не в сети 9 лет
На сайте с 20.01.2016
Участник
1
18:55

Здравствуйте, у меня на сайте, в личном кабинете организована стена пользователя.

Вы не можете просматривать опубликованные ссылки

Возникла проблема при удаление постов(записей).

<?php
    if( isset( $_POST['del'] ) )
    {        
       
       echo wp_trash_post ( $post_id );
        echo '<div style="font-size: 13px;color: red;font-family: Roboto, sans-serif;font-weight: normal;">Запись удалена!</div>';
    }
?>
<form method="POST">
   <input type="submit" name="del" value="Удалить запись?" style="box-shadow: none;" />
</form>

Вот этот код выводит кнопку удаления постов. Проблема в том, что при нажатии кнопки удалить удаляются все посты со стены.

Вы не можете просматривать опубликованные ссылки

Помоги кодом, как получать id конкретного поста, а потом удалять его (помещать в корзину)?

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16934
2
18:58

а в переменной $post_id что лежит?

1
koqpo1
не в сети 9 лет
На сайте с 20.01.2016
Участник
3
19:02

Толком и незнаю, код нашел
$post_id - ID поста. По умолчанию передается значение глобальной переменной $post.

По идее как раз таки id нужно поста, но почему тогда удаляются все посты?

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
4
19:13

а вы проверяли ее? вывод через print_r что показывает?

1
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16934
5
19:23

koqpo1 сказал(а)
По умолчанию передается значение глобальной переменной $post.

Я не вижу в вашем коде чтобы что то вообще туда передавалось.
Не хватает строки
$post_id = $_POST['del'];

1
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16934
6
19:25

да у вас вообще весь код неверный, ошибка на ошибке, я думал в $_POST['del'] содержится ИД публикации которую надо удалить, а там будет слово "Удалить", где вы только такой код находите.

1
koqpo1
не в сети 9 лет
На сайте с 20.01.2016
Участник
7
19:33

Вывел print_r вот так

<?php

    if( isset( $_POST['del'] ) )
    {        
        if ( !$post = get_post($post_id, ARRAY_A) )
		return $post;
        print_r($post);
           
        echo '<div style="font-size: 13px;color: red;font-family: Roboto, sans-serif;font-weight: normal;">Запись удалена!</div>';
    } 
?>

Выдало id на каждый пост

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16934
8
19:36

koqpo1 сказал(а)

if ( !$post = get_post($post_id, ARRAY_A) )
return $post;

это вообще откуда взялось?
Вы либо приводите сразу весь код полностью, либо не мучайте такими топиками.

1
koqpo1
не в сети 9 лет
На сайте с 20.01.2016
Участник
9
19:42

Извините, это я так print_r выводил.

Сейчас вывел по такому коду, как просил отшельник. То есть добавил print_r перед удалением поста

<?php
 
 if( isset( $_POST['del'] ) )
    {        
        print_r($post_id);
        echo wp_trash_post ( $post_id );   
        echo '&lt;div style="font-size: 13px;color: red;font-family: Roboto, sans-serif;font-weight: normal;"&gt;Запись удалена!&lt;/div&gt;';
    } 
?>
<form method="POST">
   <input type="submit" name="del" value="Удалить запись?" style="box-shadow: none;" />
</form>

вот что выводит

Вы не можете просматривать опубликованные ссылки
0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
10
19:44

$post = get_post($post_id, ARRAY_A) ) - тоже не понимаю откуда это у вас.

Выводит у вас правильно. Но там нет id записи. Вы это заметили?

1
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16934
11
19:45

я просил весь код привести, это трудно сделать?
В ваших скринах я вижу что этот отрывок что вы приводите размещен внутри цикла, тк повторяется.
Приводите весь код!

1
koqpo1
не в сети 9 лет
На сайте с 20.01.2016
Участник
12
19:49

Ссылка на весь код -

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16934
13
20:01

Можете сообщить где вы вообще взяли эту жесть?
Удаление производится через функцию, при этом в функцию ничего не передается ($post_id - ничего не содержит), соотвественно в функцию передается текущий ИД публикации, а так как все это дело производится в цикле, то происходит поочередное удаление всех публикаций из этого цикла.
Рекомендую удалить этот код, подход который вы пытаетесь применить в корне неверен.

1
koqpo1
не в сети 9 лет
На сайте с 20.01.2016
Участник
14
20:01

Otshelnik-Fm сказал(а)

$post = get_post($post_id, ARRAY_A) ) - тоже не понимаю откуда это у вас.

Выводит у вас правильно. Но там нет id записи. Вы это заметили?

Поправил html, сбилась верстка. Print_r вообще ничего не выводит, пробовал вставлять в разные места.
Но Андрей уже сказал, что весь код неправильный, поэтому от print_r пока толку нет((

0
koqpo1
не в сети 9 лет
На сайте с 20.01.2016
Участник
15
20:05

Можете сообщить где вы вообще взяли эту жесть?

Это я так своими силами переделал стену публикаций от kos-lk 🙂
Публикация записей, комментарии и удаление комментариев работают исправно, но вот все никак не могу сделать удаление записей

Спасибо за разъяснение проблемы!

0
Тема закрыта. Публикация новых сообщений запрещена.