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 ); ?>
答案 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;
}