获取特色图像URL并在发布后将其作为自定义字段插入

时间:2012-08-02 作者:Gheko

我在这里尝试了许多关于将自定义字段转换为特色图像的解决方案,当然是相反的;但非似乎对我有用。

我想做的是在上传图片并设置为特色图片后抓取特色图片URL;然后自动将全尺寸图像URL设置为自定义字段。这需要处理当前未设置自定义字段的现有文章的后期更新和新文章的后期发布。

如前所述,我曾尝试过许多基于此的建议,但似乎都没有奏效。这是我尝试的最后一段代码,但没有成功-令人沮丧的是,我似乎无法调试或从中获得任何错误:

add_action(\'publish_page\', \'add_custom_field_automatically\');
add_action(\'publish_post\', \'add_custom_field_automatically\');
function add_custom_field_automatically($post_ID) {
global $wpdb;
    $post_thumbnail_id = get_post_thumbnail_id();
    $post_thumbnail_url = wp_get_attachment_url($post_thumbnail_id);
    add_post_meta($post_ID, \'lead_image\', $post_thumbnail_url, false);
}

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

功能get_post_thumbnail_id() 如果在wordpress循环之外使用,则需要传递一个值。你忘了通过它。

您使用的代码将在每次更新时创建一个新的自定义字段,因此下面是将执行的修改后的代码update_post_meta 如果该meta\\u键已存在于数据库中,则函数。

波纹管代码在上进行测试WordPress 3.4.1 具有Twenty Ten 已安装主题

add_action(\'publish_page\', \'add_custom_field_automatically\');
add_action(\'publish_post\', \'add_custom_field_automatically\');
function add_custom_field_automatically($post_ID) {
    global $wpdb;
    $post_thumbnail_id = get_post_thumbnail_id( $post_ID );
        $post_thumbnail_url = wp_get_attachment_url($post_thumbnail_id);

        //to make sure if we already has set the value
        $has_image = get_post_meta($post_ID, \'lead_image\', true);

        //will update instead of add if meta_key has value.
        if ($has_image != \'\') {
            add_post_meta($post_ID, \'lead_image\', $post_thumbnail_url, true);
        } else {
            update_post_meta($post_ID, \'lead_image\', $post_thumbnail_url, $has_image);
        }
}

结束

相关推荐