Найти неизвестный идентификатор записи в WordPress программно

#php #wordpress #email #plugins

#php #wordpress #Адрес электронной почты #Плагины

Вопрос:

Итак, я создаю свой первый плагин для 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 Codex, и все низкоуровневые функции (которые было бы легко понять новичку) требуют либо идентификатора записи, либо идентификатора автора, чтобы это произошло. Это, конечно, не соответствует дизайну.

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

Комментарии:

1. Я не знаю, плохой ли это вопрос или просто плохо сформулирован, но найти что-то «неизвестное» во всем звучит практически невозможно! Я полагаю, вы имеете в виду, что пытаетесь найти идентификаторы записей на основе каких-то других критериев? Ваши вопросы не очень понятны

Ответ №1:

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

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

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