Intereting Posts
Как получить изображение ACF с помощью get_previous_post и get_next_post Скрыть div для подписчиков (роль пользователя) на одной странице (is_page) Рекомендации для книг / ресурса для начала разработки WordPress 3 (плагины / темы) Диспетчер изображений WordPress Media – создание множества и множество нечетных изображений Я хочу изменить свое имя пользователя Установить Featured Image программно (в админ) с помощью JavaScript? Как я могу написать этот фрагмент кода, чтобы он отвечал за ответ при отправке пустых полей? Скрыть вывод add_settings_field () Сохранить запись, создать динамическую папку в папке загрузки Относительные URL-адреса изображений в сообщениях начинаются с корня – не из адреса (URL) в WordPress в общих настройках Попытка получить авторскую почту для отправки электронной почты с страницы single.php в WordPress? Верхний и нижний колонтитулы экспорта Передаваемая переменная получает неопределенную переменную ошибку при вставке на следующей странице Как добавить короткий код после Div.class? Изменить размер модального изображения Media

Проверка формата сообщения во время xmlrpc_publish_post

WordPress, по-видимому, сохраняет информацию о формате сообщения вне объекта $post . Во время publish_post это не проблема (обычно), потому что вы можете проверять форматы через get_post_format( $post->ID ) вне цикла.

Это не работает во время xmlrpc_publish_post или app_publish_post . Люди должны работать над этим, чтобы получить функции плагина / темы, работающие на мобильных / настольных приложениях.

Мой конкретный код ниже, если это ошибка на моем конце.

 function posse_twitter( $post_ID ) { error_log('Executing posse_twitter()'); global $post; // check post format if necessary if ( get_post_format( $post->ID ) != 'status' ) return; error_log('posse_twitter() made it past format check'); $post_id = $post->ID; $shortlink = wp_get_shortlink(); $tweet_content = $post->post_content.' '.$shortlink; // ...run code once if ( !get_post_meta( $post_id, 'tweeted', $single = true ) ) { error_log('posse_twitter() not tweeted before'); // require the relevant libraries require get_template_directory() .'/inc/posse/libraries/tmhOAuth/tmhOAuth.php'; require get_template_directory() .'/inc/posse/libraries/tmhOAuth/tmhUtilities.php'; $tmhOAuth = new tmhOAuth(array( 'consumer_key' => 'XXXXX', 'consumer_secret' => 'XXXXX', 'user_token' => 'XXXXX', 'user_secret' => 'XXXXX', )); $code = $tmhOAuth->request('POST', $tmhOAuth->url('1/statuses/update'), array( 'status' => $tweet_content )); error_log('posse_twitter() made it past tmhOAuth, should be on Twitter now'); update_post_meta( $post_id, 'tweeted', true ); } } add_action( 'xmlrpc_publish_post', 'posse_twitter' ); add_action( 'app_publish_post', 'posse_twitter' ); add_action( 'publish_post', 'posse_twitter' ); 

error_log() s, поскольку я отлаживал это. Он стреляет, когда xmlrpc_publish_post и app_publish_post попадают, но он не проходит мимо проверки формата.

Обновление: это также не работает, даже если я сначала сохраню пост в виде черновика (через XML-RPC).

Solutions Collecting From Web of "Проверка формата сообщения во время xmlrpc_publish_post"

Это связано с переменным несоответствием. Ваша функция принимает $post_ID , но на самом деле вы ее не используете. Вместо этого вы пытаетесь ссылаться на глобальный объект $post и выполняете проверку почтового формата с помощью $post->ID . С запросом XML-RPC это не сработает.

Перепишите свою функцию, чтобы использовать get_post() для извлечения объекта post из идентификатора прошедшего:

 function posse_twitter( $post_ID ) { error_log('Executing posse_twitter()'); $post = get_post( $post_ID ); // check post format if necessary if ( get_post_format( $post->ID ) != 'status' ) return; error_log('posse_twitter() made it past format check'); ... }