**更新的代码段:使用了全局$post ID,而不是传入的ID,因此在将元标记添加到内容图像之前需要进行一些更新。现在它工作了。
我需要一个类似的解决方案,根据扬·法布里的建议,我想出了一个函数(虽然不雅观,但确实有效):
/* Add meta value to distinguish inserted images from other attached images - lionassociates.com */
function insertedImage_save_meta($post_id) {
$upPost = get_post($post_id);
$rawPostDoc = new DOMDocument();
@$rawPostDoc->loadHTML($upPost->post_content);
$imgs = $rawPostDoc->getElementsByTagName(\'img\');
$i = 0;
foreach($imgs as $img){
$imgIDStr = substr($img->getAttribute(\'class\'), (stripos($img->getAttribute(\'class\'),\'wp-image-\')+9), 6);
$imgID = preg_replace("[^0-9]", \'\', $imgIDStr);
if($imgID != \'\') {
if(get_post_meta($imgID, \'_inserted-image\', false))
update_post_meta($imgID, \'_inserted-image\', \'yes\');
else
add_post_meta($imgID, \'_inserted-image\', \'yes\');
}
$i++;
}
}
/* Do something with the data entered */
add_action(\'save_post\', \'insertedImage_save_meta\');
这样就可以粘贴到(functions.php)中。然后我在循环中使用附件元值,无论我在哪里吐出我的图像(根据Jan Fabry):
$imgs = get_posts(array(\'post_parent\'=>get_the_id(), \'numberposts\'=>-1, \'post_type\'=>\'attachment\', \'post_mime_type\'=>\'image\'));
if($imgs[0]) {
foreach($imgs as $img) {
if(!get_post_meta($img->ID, \'_inserted-image\', true))
echo wp_get_attachment_image($img->ID, \'sec-slide\'); //\'sec-slide\' is just the name of a custom image size
}
}
这会弹出未插入帖子内容的所有附加图像。