$post
在期间不可用{$new_status}_{$post->post_type}
, 但是$post_ID
是我们将其传递给函数,然后调用$post
全球范围内。
我也应该使用get_post_format()
, 不适用于类型。
在这些更正之后,一切似乎都进展顺利,但需要注意的是,如果帖子在发布之前没有自动保存或保存为草稿,那么$post->post_content
期间仍将为空{$new_status}_{$post->post_type}
.
下面是新代码。
function posse_twitter( $post_ID ) {
global $post;
// check post type if necessary
if ( get_post_format( $post->ID ) != \'status\' ) return;
$post_id = $post->ID;
$tweet_content = $post->post_content;
if ( !get_post_meta( $post_id, \'tweeted\', $single = true ) ) {
// ...run code once
require \'libraries/tmhOAuth/tmhOAuth.php\';
require \'libraries/tmhOAuth/tmhUtilities.php\';
$tmhOAuth = new tmhOAuth(array(
\'consumer_key\' => \'XXXX\',
\'consumer_secret\' => \'XXXX\',
\'user_token\' => \'XXXX\',
\'user_secret\' => \'XXXX\',
));
$code = $tmhOAuth->request(\'POST\', $tmhOAuth->url(\'1/statuses/update\'), array(
\'status\' => $tweet_content
));
update_post_meta( $post_id, \'tweeted\', true );
}
}
add_action( \'publish_post\', \'posse_twitter\' );
方便:
Adam Brown\'s API reference