gpt4 book ai didi

wordpress - 附加图像以在 Wordpress XMLRPC 中发布

转载 作者:行者123 更新时间:2023-12-04 14:14:18 24 4
gpt4 key购买 nike

我正在使用 XMLRPC 向 Wordpress 发帖。我在发布缩略图时遇到问题,在调试 wordpress 代码后,我发现我的问题是由图像未附加到帖子中引起的。
我必须在不修补 wordpress 或使用 PHP 的情况下执行此操作,仅使用 XMLRPC。

我可以上传图像并获取图像的 ID。
另一点让我感到困惑的是,您如何将图片附加到您尚未发布的帖子中,因为您正在等待图片上传?我应该上传图片然后发布,然后使用图片 ID 和帖子 ID 更新图片元数据?

编辑:wordpress 中有问题的代码是这个检查

if ( $thumbnail_html = wp_get_attachment_image( $thumbnail_id, 'thumbnail' ) )

我的假设是它失败,因为图像未附加,如果我修复该代码一切正常,但我无法修补我的应用程序用户的 WP(所以这不是解决方案)

最佳答案

是的,可以这样做,如果 Wordpress 版本是 3.5 或更高版本,则在使用上传文件/图像的代码时,您可以设置 post_id。
我用于带有特色图片的新帖子的流程是这样的:

  • 使用 newPost 功能并发布没有特色的内容
    image并将publish设置为false,记录返回的post_id
  • 上传图片并将post_id设置为帖子的id
    发帖,记录image_id
  • 完成后编辑帖子并将 wp_post_thumbnail 设置为等于
    您刚刚上传的 image_id 并将发布设置为 true(如果需要)

  • 重要的:
    mime 类型很重要,它必须是“image/jpg”或“image/png”,请参阅文档,如果 mime 类型被磨损,如“jpg”附加将失败。

    提示:
    对于调试,如果您从 wordpress 收到一般错误并且您无法弄清楚为什么可以检查 wordpress 代码甚至对其进行编辑,添加调试/跟踪调用,希望您能找出原因。

    这是一个带有类别、图像和标签的帖子示例。它需要类-IXR.php
    https://github.com/WordPress/WordPress/blob/master/wp-includes/class-IXR.php
    和 mime_content_type 函数
    https://github.com/caiofior/storebaby/blob/master/magmi/plugins/extra/general/socialnotify/wp/mimetype.php
            $client = new IXR_Client($url);
    $content = array(
    'post_status' => 'draft',
    'post_type' => 'post',
    'post_title' => 'Title',
    'post_content' => 'Message',
    // categories ids
    'terms' => array('category' => array(3))
    );
    $params = array(0, $username, $password, $content);
    $client->query('wp.newPost', $params);
    $post_id = $client->getResponse();

    $content = array(
    'name' => basename('/var/www/sb/img.jpeg'),
    'type' => mime_content_type('/var/www/sb/img.jpeg'),
    'bits' => new IXR_Base64(file_get_contents('/var/www/sb/img.jpeg')),
    true
    );
    $client->query('metaWeblog.newMediaObject', 1, $username, $password, $content);
    $media = $client->getResponse();
    $content = array(
    'post_status' => 'publish',
    // Tags
    'mt_keywords' => 'tag1, tag2, tag3',
    'wp_post_thumbnail' => $media['id']
    );
    $client->query('metaWeblog.editPost', $post_id, $username, $password, $content, true);

    关于wordpress - 附加图像以在 Wordpress XMLRPC 中发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17722743/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com