2016-11-07 60 views
1

我发现这个功能here。 我正在使用ACF pro。WordPress:设置'精选图像'作为第一个ACF画廊时,保存后

更新:我添加变量根据下面的评论,这摆脱了错误,但功能仍然无法正常工作。

的functions.php:

说明::未定义变量:

add_action('save_post', 'set_featured_image_from_gallery'); 

function set_featured_image_from_gallery() { 
    $post = get_post(); //Edit according to comment below  
    $has_thumbnail = get_the_post_thumbnail($post->ID); 

    if (!$has_thumbnail) { 

    $images = get_field('gallery', false, false); 
    $image_id = $images[0]; 

    if ($image_id) { 
     set_post_thumbnail($post->ID, $image_id); 
    } 
    } 
} 

错误信息保存后(按压 “更新” - 按钮)时交/应用程序/ MAMP/htdocs中/pf-blank/wp/wp-content/themes/PF-Blank-theme/functions.php on line 600

注意:试图在/ Applications/MAMP/htdocs/pf-blank中获取非对象的属性/ WP/WP-CONT在线600上的ent/themes/PF-Blank-theme/functions.php

警告:无法修改头信息 - 头文件已经发送(输出开始于/ Applications/MAMP/htdocs/pf-blank/wp/wp-内容/主题/ PF-Blank-theme/functions.php:600),位于/Applications/MAMP/htdocs/pf-blank/wp/wp-admin/post.php在线197

警告:无法修改标题信息 -/Applications/MAMP/htdocs/pf-中已经发送的头文件(输出开始于/Applications/MAMP/htdocs/pf-blank/wp/wp-content/themes/PF-Blank-theme/functions.php:600)在线1174空白/ wp/wp-includes/pluggable.php

+0

首先你需要得到您的文章在$后varriable数据,然后,然后你可以使用后$> ID,您在功能上已经过去了,因此使用get_posts数据获取所有后期数据到$ post varriable,然后尝试添加一个'$ post = get_posts();'不起作用,用'$ has_thumbnail'周围的foreach循环尝试 –

+0

,也不起作用。我可以得到一个代码示例吗? –

回答

1

您需要传递参数get_posts函数通过给出参数。

试试下面的代码:

function set_featured_image_from_gallery() { 

    $args = array('posts_per_page' => 10, 'order'=> 'ASC'); 
    $postslist = get_posts($args); 
    foreach ($postslist as $post) : 
     $has_thumbnail = get_the_post_thumbnail($post->ID); 

     if (!$has_thumbnail) { 

     $images = get_field('gallery', false, false); 
     $image_id = $images[0]; 

     if ($image_id) { 
      set_post_thumbnail($post->ID, $image_id); 
     } 
     } 
     endforeach; 
    } 

    add_action('save_post', 'set_featured_image_from_gallery'); 
+0

为此工作:'$ postlist = get_posts($ args);'=='$ postslist = get_posts($ args);'&'if($ has_thumbnail){'== if(!$ has_thumbnail){' –

+0

@Carl Papworth对不起,你说得更详细些?我的解决方案不适合你? –

+0

这个函数除了有一些拼写错误之外,还有一些错误:'$ postlist'变量名不一样,'$ has_thumbnail'应该是'!$ has_thumbnail',所以它不会改变以前设置的缩略图。这只是为了复制/粘贴目的。干杯。 –