Set_post_thumbnail无法在单页,WordPress上运行

时间:2016-07-16 18:32:59

标签: php wordpress

WordPress Codex规定' set_post_thumbnail'如下:

<?php set_post_thumbnail( $post_id, $thumbnail_id ); ?>

在我正在使用的single-page.php上,我有以下代码片段

$post_id = get_the_ID();
// Returns the ID of the current post

$thumb_url2 = mpp_media_src( 'full' );
$thumb_url = $thumb_url2[0];
//Returns the full URL path of first MediaPress image.

&安培;最后,我在functions.php文件中有以下功能。

function get_attachment_id_from_src ($image_src) {
global $wpdb;
$query = "SELECT ID FROM {$wpdb->posts} WHERE guid='$image_src'";
$id = $wpdb->get_var($query);
return $id;
}

以下单页回到我的单页

$thumb_id = get_attachment_id_from_src($thumb_url);

的测试
echo $post_id;

返回

3544

这是正确的帖子ID号。

的测试
echo $thumb_url;

返回图片网址

http://localhost/mydomain/wp-content/uploads/mediapress/members/374/3535/ATOMS-FOR-PEACE2.jpg

这是正确的图片网址。

的测试
echo $thumb_id;

返回

1627

哪个是正确的缩略图ID。

为什么,我想知道,经过测试以确保变量中的值是正确和准确的,插入以下代码似乎没有效果?

<?php set_post_thumbnail( $post_id, $thumb_id ); ?>

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

似乎该函数没有返回正确的缩略图ID。

事实证明,MediaPress有一个名为

的东西
mpp_get_media_id

这很容易。

所以我删除了这个功能,只是简单地使用了这个:

$mpp_media_id = mpp_get_media_id();
             $already_has_thumb = has_post_thumbnail( $post->ID );
             if ( !$already_has_thumb ) {
                 $setpt = set_post_thumbnail( $post->ID, $mpp_media_id );
                 $setpt;
             }