Найти неизвестный идентификатор сообщения в Wordpress программно - PullRequest
0 голосов
/ 08 марта 2019

Итак, я создаю свой первый плагин для WordPress. Это простой плагин, который запрашивает базу данных SQL, получает электронные письма читателей блога и отправляет им электронную почту всякий раз, когда сообщение обновляется или публикуется.

Идея состоит в том, чтобы иметь электронное письмо, которое сообщит читателю, было ли сообщение обновлено с более старой версии или опубликовано новое сообщение. Также предполагается предоставить ссылку на пост для быстрого чтения.

Я получил это далеко:

  add_action( 'publish_post', 'email_function' );

function email_function( $arg ) {
    $link = mysqli_connect("*********", "********", "********", "***********");

            if (mysqli_connect_error()) {

                die ("There was an error connecting to the database");

            } 

    $query = "SELECT `******` FROM `*******`";

    $msg = "There has been a new blog post at The White Road!";

    if ($result = mysqli_query($link, $query)){
         while ($row = mysqli_fetch_array($result)){

             mail($row['email'],"New Post!",$msg);

         }}else {
             //for testing
            echo "break";
         }
}

Теперь проблема в том, что в этой ситуации я хочу, чтобы эта функция выполнялась автоматически, но для этого мне понадобится программно найти несколько неизвестных. В частности, сообщение, которое обновляется, если сообщение обновляется или если оно новое, автор указанного сообщения и ссылка на его страницу.

Я взглянул на Кодекс WordPress, и для всех низко висящих функций (которые было бы легко понять новичку) требуется либо идентификатор поста, либо идентификатор автора, чтобы это произошло. Это, конечно, не соответствует замыслу.

Любая помощь в том, как найти и использовать эти вещи, будет принята с благодарностью. :)

1 Ответ

0 голосов
/ 08 марта 2019

В Wordpress API есть хук post_updated, к которому вы можете присоединить эту функцию с помощью add_action.

https://codex.wordpress.org/Plugin_API/Action_Reference/post_updated

Вы можете сравнить before и after, и, если значения конкретного поля отличаются, это приведет к обновлению. Я полагаю, что самым простым было бы проверить datetime, в качестве альтернативы можно было бы проверить заголовок, если незначительные изменения в правописании / грамматике не заслуживают сообщения электронной почты.

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