通过wp-admin和iOS应用程序发布,涉及相同的挂钩和触发器?

时间:2011-07-04 作者:jyoseph

我有一个add_action 在函数中。php,该操作用于save_post 我正在运行的函数命名为set\\u attachment\\u url。我只是在帖子上获取第一个附件,并用该附件的URL设置一个自定义字段。

好消息是,当我从wp管理员添加内容时,一切都很好。但当我从iOS应用程序添加内容时,我不会得到相同的结果。我必须添加帖子,点击帖子,单击“更新”,然后THEN 它起作用了。

虽然我学得很快,但我对钩子和每一个钩子何时被解雇的了解还不够。任何人都能发现问题所在,为什么在iOS上insert不起作用,但在更新时会起作用。

以下是基本信息。。。

add_action( \'save_post\', \'set_attachment_url\', 10, 1 );

// process the attachment url
function set_attachment_url($post_id){

    // get the post and status
    $my_post = get_post($post_id);
    $post_status = $my_post->post_status;

    // if we are publishing
    if($post_status == \'publish\'){

        // check custom field -- this is what tells us if we need to process this photo or not
        // if it does not have a photo_url then we need to work on it

        $photo_url = get_post_meta($post_id, \'photo_url\', true);

        // if no length, we need to fill it
        if(!strlen($photo_url)){

            // get the first attachment for this post
            $args = array( \'post_type\' => \'attachment\', \'numberposts\' => 1, \'post_status\' => null, \'post_parent\' => $post_id ); 
            $attachments = get_posts($args);

            // set the attachment ID and get the photo url
            $attachment_id = $attachments[0]->ID;
            $photo_url = wp_get_attachment_url($attachment_id);

            // update the custom field with the image source
            update_post_meta( $post_id, \'photo_url\', $photo_url );

            // set the featured image
            update_post_meta( $post_id, \'_thumbnail_id\', $attachment_id );

        }               

    }

}

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

update post函数实际上调用了insert函数,因此它应该可以工作,现在我不确定,但请尝试更改:

 if(!strlen($photo_url)){
收件人:

 if(empty($photo_url)){
自php以来strlen() 在空字符串上返回0。

结束

相关推荐

如何通过XML-RPC获取所有帖子(以块为单位)?

I would like to retrieve all posts of a blog via the XML-RPC API of Wordpress.有以下方法blogger.getRecentPosts 和metaWeblog.getRecentPosts 理论上,如果给出足够高的值作为职位数量(或-1),则应返回所有职位。但是,这不适用于非常大的博客或非常弱的服务器,这些服务器无法在内存中保存整个博客。在这种情况下,这些函数最多不会返回任何内容,也不会向响应XML中抛出错误。一种解决方案是一次检