如何将“作为特色图像使用”添加到自定义的Metabox中?

时间:2011-03-08 作者:Rick Curran

我正在实现一个自定义元框,允许用户通过一个简单的文件输入字段添加图像(基于此网站上的代码:Meta Box Script). 此代码允许将多个图像作为附件添加到页面中,无需使用“完全上载”对话框即可完成此操作,您只需选择图像文件并发布页面,即可上载图像。这很好,但是,我希望能够在每个图像上添加一个链接,以便您可以将图像设置为特色图像。

下面的图片显示了它的外观:Image thumbnails with links

我浏览了一下标准的图像上传程序,发现有一个JS文件(/wp admin/JS/set post thumbnail.JS),作为AJAX调用触发,这将图像设置为特色图像。我正在使用以下代码(由PHP echo\'d,因此转义)添加“Use as featured image”链接:

<script type=\\"text/javascript\\" src=\\"/wp-admin/js/set-post-thumbnail.js\\"></script>
<a class=\\"wp-post-thumbnail\\" id=\\"wp-post-thumbnail-1915\\" href=\\"javascript:void(0)\\" onclick=\\"WPSetAsThumbnail(&quot;{$att->ID}&quot;, &quot;{$nonce}&quot;);return false;\\">Use as featured image</a>
我通过一点尝试和错误就明白了这一点,但当我遇到错误时,它不起作用Uncaught ReferenceError: setPostThumbnailL10n is not defined, 这是因为我没有加载提供setPostThumbnailL10n 可能还有其他问题!

基本上,我想知道是否可以轻松地利用这种内置功能。我的另一个选择是推出我自己的JS,它将图像保存为特色。我还需要能够取消一个图像作为特色太。任何想法都非常受欢迎,因为这似乎是一个未知的领域,因为谷歌搜索还没有想出任何东西!

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

即使包含了所需的所有文件,您仍然需要创建一些额外的隐藏字段,如\\u nonce来传递

check_ajax_referer( "set_post_thumbnail-$post_ID" );

此外,您还需要创建一个动作隐藏字段,用以下值标识Ajax调用的情况:"set-post-thumbnail"

您最好创建自己的Ajax调用,并在回调函数中简单使用:

    set_post_thumbnail( $post, $thumbnail_id );
//or
    update_post_meta( $post->ID, \'_thumbnail_id\', $attachment_id );
和取消使用

delete_post_meta( $post_ID, \'_thumbnail_id\' );

结束

相关推荐

404从wp-Content/Uploads/获取图像时

我在获取图像时获得404状态,http仍然包含该图像。图像显示在浏览器中,但404代码中断了一些应用程序。对wp内容/上载/的调用被重定向到。htaccess:<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\\.php$ - [L] RewriteRule (.*) /index.php?getfile=$1 [L] </IfModule>&