如何处理通过本地WordPress上传程序上传的未附加徽标和标题?

时间:2014-03-21 作者:wp student

通常,当我们对未附加的图像进行排序时,它们也包括徽标和标题图像。我的问题很简单。是否有任何方法可以确保标题和徽标不被删除?

是否可以在上载时自动将它们附加到页面(如徽标或首页),以便它们不会在媒体库中显示为未附加。

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

您可以将ID添加为post_parent 至标题图像的附件,通过wp_update_post() (尽管这似乎是一种非常非常黑客的方式!)

棘手的部分是从附件URL中获取ID;幸运的是,Rarst很久以前就解决了这个问题,所以您可以手动添加get_attachment_id() 您的功能。

接下来,您必须将ID分配为post_parent; 每次保存标题图像时,选定的标题图像将附加到此特殊ID。

add_action( \'admin_init\', \'attach_header_image\' );
function attach_header_image() {
  if ( isset( $_POST[\'default-header\'] ) ) :
    $header_image_url = get_header_image();
    $header_image_id = get_attachment_id( $header_image_url ); // function via https://wordpress.stackexchange.com/a/7094/32946
    $args = array(
      \'ID\' => $header_image_id,
      \'post_parent\' => 1 // assign header image to this ID
    );
    wp_update_post( $args );
  endif;
}
尽管如此,这似乎是一种棘手的解决问题的方法,为delete函数编写一个异常可能会更好。。。

Debugging Infos:

回声get_header_image() 应输出指向当前标题图像URL的链接(仅当定义了标题图像时为true)

  • echoget_attachment_id( $header_image_url ) 应该输出附件页的ID,该ID应该等于您可以在Media(/wp admin/post.php)中看到的附件页的ID?post=123&;操作=编辑);还要确保复制和粘贴get_attachment_id() 功能从稀有到您的功能default-header 应检查name 选中的输入标题字段的$_POSTenter image description here
  • 结束

    相关推荐

    Protect Uploads in Multisite

    我正在使用WordPress multisite(3.3.1),并试图保护从某些博客上传的内容不被热链接和直接访问。这与How to Protect Uploads, if User is not Logged In?, 但我只想通过服务器上运行的脚本访问上传内容(即,只有服务器可以显示/提供上传服务),因此内容可以受到WordPress用户权限的保护。例如,我有一个名为40c的字段。jpg位于localhost/files/2011/07/40c。jpg;我想让文件显示出来only 在本地域上由HTML