Intereting Posts
Как показывать рекламу google между почтовым контентом? admin не может изменить изображение профиля автора Как вставить некоторые строки файла журнала в пользовательскую страницу администратора Woocoomerce – Показать подкатегории текущей категории только на боковой панели admin_notices hook показать сообщение всем страницам администратора после активации плагина Как добавить регистрационную форму по умолчанию на страницу шаблона? Перенаправление WordPress при изменении имени При разбиении страницы на страницу с тегом <! – nextpage ->, как можно настроить индивидуальный и второй стили страниц? Запуск реального задания cron на большом многоузловом языке вызывает отставание Что-то случилось, и теперь я не могу попасть в wp-admin Как изменить содержание сообщения? Как получить массив с правильным порядком вложенных комментариев? Удаление классов изображений из вывода эскиза сообщения Как я могу добавить пользовательские изображения заголовков для каждой категории? Активный класс не работает на странице, созданной плагином wordpress

Вставьте сообщение программно и решите чирикать или не чирикать

Я вставляю новое сообщение с помощью wp_insert_post() и хочу решить, будет ли этот пост чирикать или не использовать плагин WP to Twitter .

Во-первых , я создаю сообщение так:

 $newpost = array( 'post_title' => 'Hello world', 'post_content' => 'Is it a good day to tweet or not?', 'post_status' => 'draft' ); $newpostid = wp_insert_post($newpost); 

Во-вторых , я обновляю таблицу postmeta, устанавливая:

 if($tweet_this_post == true) { update_post_meta($newpostid, '_jd_tweet_this', 'yes'); } else { update_post_meta($newpostid, '_jd_tweet_this', 'no'); } 

До сих пор все работает так, как ожидалось. Сообщение создается, а таблица _jd_tweet_this устанавливается с опцией _jd_tweet_this как « yes и « no . Все идет нормально.

Однако, поскольку я настроил WP to Twitter чтобы пометить все новые сообщения по умолчанию, таблица _jd_tweet_this всегда содержит параметр _jd_tweet_this который по умолчанию установлен на yes . И я не могу переопределить его, используя update_post_meta() как описано выше.

Когда я устанавливаю значение $tweet_this_post в false , я заканчиваю двумя (2) записями для _jd_tweet_this в таблице postmeta – значение по умолчанию yes имеет более низкое значение meta_id, чем значение, введенное моей update_post_meta() . Которое указывает мне, что значение по умолчанию (да) было вставлено до программного добавочного значения (нет), что предполагает, что update_post_meta() НЕ ОБНОВЛЯЕТ существующее значение для _jd_tweet_this .

Мой вопрос: Может ли кто-нибудь объяснить мне, что мне нужно сделать, чтобы программно контролировать, если вставленный пост в черновом статусе получает твиттер, когда я вручную публикую его с панели управления?

Обновлено: Вот код, который содержится в моих functions.php:

 function wpcf7_to_post($cfdata) { $formtitle = $cfdata->title; if($formtitle == 'front-end-add-post') { $submission = WPCF7_Submission::get_instance(); if($submission) { $formdata = $submission->get_posted_data(); // insert new post with form data $newpost = array( 'post_title' => trim($formdata['title']), 'post_content' => trim($formdata['content']), 'post_status' => 'draft', 'post_type' => 'post' ); $newpostid = wp_insert_post($newpost); // tweet this post? if(in_array('yes', $formdata['tweet'])) { update_post_meta($newpostid, '_jd_tweet_this', 'yes'); } else { update_post_meta($newpostid, '_jd_tweet_this', 'no'); } } } } add_action('wpcf7_before_send_mail', 'wpcf7_to_post', 1); 

Как вы можете видеть, я использую плагин CF7 для отправки на новые страницы новых сообщений, и я читаю данные из формы (это все работает отлично; -)) … Спасибо!

Solutions Collecting From Web of "Вставьте сообщение программно и решите чирикать или не чирикать"