【发布时间】:2015-05-15 21:51:05
【问题描述】:
现在,当在 WordPress 中创建新帖子时,我正在向 android 应用程序用户发送通知。但问题是,它也会在草稿创建和帖子更新时发送通知。只有在新帖子发布时我应该设置什么条件来发送通知?
这是我的代码,位于 wp-admin/includes/post.php
function _wp_translate_postdata( $update = false, $post_data = null ) {
if ( $update)
$post_data['ID'] = (int) $post_data['post_ID'];
$post_id = $post_data['ID'];
global $wpdb;
$sel2 = mysql_query("select * from gcm_users");
while($data1 = mysql_fetch_assoc($sel2))
{
$key = $data1['gcm_regid'];
include_once '../blogdroid/config.php';
include_once '../blogdroid/GCM.php';
$gcm = new GCM();
$sel = mysql_query("select * from ".$wpdb->prefix."posts where ID='$post_id'");
$data = mysql_fetch_assoc($sel);
$Pname = $data['post_title'];
$registatoin_ids = array($key);
if($Pname != 'Auto Draft')
{
$message = array("blog" => 'New Blog Arrived '.$Pname );
$result = $gcm->send_notification($registatoin_ids,$message);
}
}
}
【问题讨论】:
-
您是否要更改 wordpress 核心文件?这是一个非常坏的习惯。
-
是的,但是可以检查帖子的状态吗?我的意思是如何检查新帖子是否已发布或已更新?
-
试试这个
if( ( $_POST['post_status'] == 'publish' ) && ( $_POST['original_post_status'] != 'publish' ) ) { echo "New post!"; } -
它不适用于新创建的帖子。
-
所以你必须在你的function.php文件中使用
transition_post_status动作,如@HdK回答。