我有一个IFTTT recipe 这会在某些情况下为我创建帖子,但出于某种奇怪的原因,它会创建三个,有时是四个内容相同的帖子。
我想添加一个add_action
钩住/回调以验证新帖子的内容,如果已经存在,则取消该帖子,或将其移动到垃圾桶或类似的地方。
我找到了xmlrpc_prepare_post
但我想我不能从那里取消它。除非我可以更新某些属性并将其设置为垃圾?
Update.
我尝试了以下操作,它只会进入xmlrpc\\u调用,而不会进入xmlrpc\\u wp\\u insert\\u post\\u meta。我甚至添加了一个硬编码的add\\u filter调用(不仅仅是在if newPost的情况下),我的日志从来没有显示这样的日志消息。代码如下:
function hueman_xmlrpc_call( $method )
{
error_log("XMLRPC | hueman_xmlrpc_call Method = $method \\n" , 3, \'/home/.../debug.log\');
if( \'wp.newPost\' === $method || \'metaWeblog.newPost\' === $method )
{
error_log("XMLRPC | hueman_xmlrpc_call method = " . $method . " \\n" , 3, \'/home/.../debug.log\');
add_filter( \'xmlrpc_wp_insert_post_data\', \'hueman_xmlrpc_wp_insert_post_data\' );
}
}
add_action(\'xmlrpc_call\', \'hueman_xmlrpc_call\', 1 );
add_filter( \'xmlrpc_wp_insert_post_data\', \'hueman_xmlrpc_wp_insert_post_data\' );
function hueman_xmlrpc_wp_insert_post_data( $post_data )
{
error_log("XMLRPC | hueman_xmlrpc_wp_insert_post_data \\n" , 3, \'/home/.../debug.log\');
// Check if the post title exists:
$tmp = get_page_by_title(
$post_data[\'post_title\'],
OBJECT,
$post_data[\'post_type\']
);
if( is_object ( $tmp ) )
{
// Go from \'insert\' to \'update\' mode within wp_insert_post():
//$post_data[\'ID\'] = $tmp->ID;
$post_data[\'post_status\'] = \'trash\';
error_log("XMLRPC | hueman_xmlrpc_wp_insert_post_data I TRASHED IT! \\n" , 3, \'/home/.../debug.log\');
}
return $post_data;
}
在日志中,我有这样的日志语句:XMLRPC | hueman_xmlrpc_call Method = mt.supportedMethods
XMLRPC | hueman_xmlrpc_call Method = metaWeblog.getRecentPosts
XMLRPC | hueman_xmlrpc_call Method = mt.supportedMethods
XMLRPC | hueman_xmlrpc_call Method = metaWeblog.getRecentPosts
XMLRPC | hueman_xmlrpc_call Method = mt.supportedMethods
XMLRPC | hueman_xmlrpc_call Method = metaWeblog.getRecentPosts
XMLRPC | hueman_xmlrpc_call Method = metaWeblog.getCategories
XMLRPC | hueman_xmlrpc_call Method = metaWeblog.newPost
XMLRPC | hueman_xmlrpc_call method = metaWeblog.newPost
然后,我看到了在创建文章时添加的其他过滤器。我知道我最终可能会修复那里的文章,但我相信这个XMLRPC过滤器/操作应该可以工作。从日志中,我看到它进入if newPost并添加过滤器“xmlrpc\\u wp\\u insert\\u post\\u data”,但它从不执行hueman\\u xmlrpc\\u wp\\u insert\\u post\\u data函数…:(