2012-02-05 45 views
1

我有一个函数在帖子中自动创建一个自定义字段。我有这个位于我的functions.php。在函数中包含w_thumbnail_src?

Image是自定义字段的名称,HERE是值。我怎样才能把功能w_thumbnail_src作为变量?

add_action('wp_insert_post', 'mk_set_default_custom_fields'); 
    function mk_set_default_custom_fields($post_id) 

    { 
     if ($_GET['post_type'] != 'post') { 
      add_post_meta($post_id, 'Image','HERE', true); 
     } 
     return true; 
    } 

,让我补充一点,w_thumbnail_src是看起来像这样

function w_thumbnail_src() { 
    if (has_post_thumbnail()) { 
     $thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'emphasis'); 
     echo $thumb[0]; // thumbnail url 
    } 
} 
+0

我不是很清楚你在问什么? 'add_post_meta($ post_id,'Image',w_thumbnail_src(),true);'你是什么意思? – drew010 2012-02-05 20:27:47

+0

多数民众赞成的想法,但我已经尝试过,它不工作。它只是返回一个空的值字段。我需要缩略图网址在那里出现 – Demilio 2012-02-05 21:19:59

回答

1

我认为你需要改变同一个文件中的函数:
add_post_meta($post_id, 'Image','HERE', true);
到:
add_post_meta($post_id, 'Image', w_thumbnail_src(), true);

并通过将其更改为以下来修复w_thumbnail_src()函数:

function w_thumbnail_src() { 
    if (has_post_thumbnail()) { 
     $thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'emphasis'); 
     return $thumb[0]; // thumbnail url 
    } else { 
     return ''; // or a default thumbnail url 
    } 
} 
+0

谢谢你的尝试,但它没有奏效,但我已经发布了答案,你好嗨。谢谢!! – Demilio 2012-02-05 22:10:03

0

这是将缩略图url添加到名为Image的自定义字段的最终代码。

function w_thumbnail_src() { 
    if (has_post_thumbnail()) { 
     $thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'emphasis'); 
     return $thumb[0]; // thumbnail url 
    } else { 
     return ''; // or a default thumbnail url 
    } 
} 


add_action('publish_page', 'add_custom_field_automatically', 'w_thumbnail_src'); 
add_action('publish_post', 'add_custom_field_automatically'); 
function add_custom_field_automatically($post_id) { 
global $wpdb; 
if(!wp_is_post_revision($post_id)) { 
add_post_meta($post_id, 'Image', w_thumbnail_src(), true); 
} 
}