我从其他开发者那里继承了这个网站。我们最近更新了高级自定义字段PRO插件来修复不同的问题,它运行正常。今天早上我接到一个电话,当添加到帖子中时会出现特色图片,但是当他们发布时,特色图片就会消失。
我已经检查过以确保允许使用精选图片。现有帖子显示特色图像,但编辑或添加新帖子然后发布不会将图像附加到帖子。
我查看了save_post钩子方法,但根本没有触及特色图像。
有什么想法吗?
这是通过'save_post'钩子添加的方法:
function save_listing($listing_id, $post) {
global $wpdb;
if ('listings' != $post->post_type)
return;
//store fullDescription, keywords and categories in wp_listings
$full_description = get_field('listing_full_description', $listing_id);
$keywords = get_field('listing_keywords', $listing_id);
$terms = wp_get_post_terms($listing_id, 'listing-categories', ['fields' => 'names']);
$categories = implode(", ", $terms);
$tier = get_field('listing_tier', $listing_id);
$tier = array_search($tier, ['standard', 'premium', 'platinum']) + 1;
$wpdb->replace('wp_listings', ['id' => $listing_id, 'title' => $post->post_title, 'fullDescription' => $full_description, 'keywords' => $keywords, 'categories' => $categories, 'tier' => $tier], ['%d', '%s', '%s', '%s', '%s', '%d']);
$locations = get_field('listing_locations', $listing_id);
$wpdb->delete('wp_locations', ['listing_id' => $listing_id], ['%d']);
if (!isset($locations))
return;
if ($post->post_status != 'publish')
return;
foreach ($locations as $loc_number => $location) {
$disabled = isset($location['disable_map_location']) && $location['disable_map_location'] ? 1 : 0;
$wpdb->insert('wp_locations', ['listing_id' => $listing_id, 'loc_number' => $loc_number, 'lat' => $location['map']['lat'], 'lng' => $location['map']['lng'],
'zip' => $location['zip'], 'city' => $location['city'], 'state' => $location['state'], 'disabled' => $disabled], ['%d', '%d', '%f', '%f', '%s', '%s', '%s', '%d']);
}
}
add_action('save_post', 'save_listing', 100000000, 2);
还验证了支持精选图片
if (function_exists('add_theme_support')) {
add_theme_support('post-thumbnails'); }
我已经确认在帖子保存后,帖子元数据包含“_thumbnail_id”,并且有一个与该ID对应的帖子附件。但是,当页面重新加载时,没有特色图片。
答案 0 :(得分:0)
因此,在保存后查看$ _POST然后交叉引用后元数据后,我发现_thumbnail_id没有保存在元数据中。仍不确定原因,但我通过将此代码添加到我的save_post钩子方法来修复它:
update_post_meta($post->ID, '_thumbnail_id', filter_input(INPUT_POST, '_thumbnail_id') );
这感觉有点hacky但是整个网站都是hacky:)