PHP скрипт для Wordpress для одобрения комментариев - PullRequest
0 голосов
/ 06 ноября 2011

Я хочу написать PHP-скрипт (автономный) для одобрения комментариев.

Цель : Я использую Аксимет для фильтрации комментариев. После фильтрации Акисмета несколько комментариев пропускаются и приходят на мою электронную почту для одобрения. Оттуда я получу идентификатор комментария и передам его скрипту в параметре get (вручную).

Таким образом, мне не нужно каждый раз входить в WP. Сценарий просто одобрит комментарий, поэтому нет большого риска или вреда. Если скрипт работает, тогда это займет меньше времени, и я могу одобрить комментарий в любое время, даже из офиса.


Я попытался установить бит модерации в MySQL напрямую, чтобы посмотреть, работает он или нет! Ответ и да и нет. Он одобряет комментарий, но не обновляет сообщение. Итак, мой кеш показывает пост без нового комментария. Я использую плагин Super cache.

Задача состоит в том, чтобы написать скрипт ВНЕ среды WP. Так что я могу получить доступ к сценарию без входа администратора.

Пожалуйста, предложите хитрость для этого и как начать для этого.

Ответы [ 2 ]

1 голос
/ 07 ноября 2011

Я провел немного времени и заставил это работать.Ключ в том, что вы можете использовать WP API в своем скрипте, включив wp-load.php.

Я проверил это ниже, и это работает в моем Wordpress.Он использует параметры GET «commentid» и «status».Я оставляю вам возможность расширять, тестировать на наличие ошибок, обеспечивать соответствующие механизмы безопасности и т. Д.

<?php
include('wp-load.php');

echo 'Running comment approval...<br>';
$wp_error = false;

if(isset($_GET['commentid']) && isset($_GET['status']) )
{   


        $comment_id = $_GET['commentid'];
        $comment_status_to_set = $_GET['status'];

        $current_status = wp_get_comment_status( $comment_id );

        echo 'Current comment status is ' . $current_status .'<br>';
        echo 'Setting status to ' . $comment_status_to_set . '<br>';

        $res = wp_set_comment_status($comment_id, $comment_status_to_set, $wp_error);        

        $new_current_status = wp_get_comment_status( $comment_id ); 
        echo 'Now status is ' . $new_current_status . '<br>';
}
else
{
    echo 'No comment parameters passed in url';
}

?>

А вот использование wp_set_comment_status из исходного кода:

  • @ param int $ comment_id Идентификатор комментария.
  • @ param string $ comment_status Новый статус комментария: «Удерживать», «Утвердить», «Спам» или «Удалить».
  • @ parambool $ wp_error Возвращать ли объект WP_Error в случае сбоя.По умолчанию установлено значение false.
  • @ return bool False при ошибке или удалении и true при успехе.

Кроме того, любопытные могут узнать, как я решил эту проблему ... в основномЯ проверил каталог / wp-includes / WP, чтобы увидеть, есть ли какие-либо файлы, связанные с комментариями.Там есть файл с именем comment.php, в котором есть большинство, если не все, основные функции манипулирования комментариями, которые использует WordPress API.

0 голосов
/ 23 мая 2013

@ param int $ comment_id Идентификатор комментария.@param string $ comment_status Новый статус комментария: «удерживать», «одобрить», «спам» или «удалить».@param bool $ wp_error Возвращать ли объект WP_Error в случае сбоя.По умолчанию установлено значение false.@return bool False при неудаче или удалении и true при успехе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...