The problem:
我是从Wordpress iPhone应用程序发帖的。添加图像时,图像会显示在描述中,这是我不喜欢的。
What I\'m trying to do:
从描述中删除图像,然后执行以下操作之一(不知道一个选项比另一个选项有什么好处):
从删除的图像中获取图像源,并将其添加到自定义字段-或者-
将图像设置为特色图像我想这些选项中的任何一个都可以帮助我隔离图像URL,以便在帖子模板中使用。
What I\'ve tried:<简直就是太阳底下的一切。现在我正在为函数添加代码。php,但最终希望将其作为一个插件。
我认为下面的代码太离谱了,但我想发布它来展示我所做的一些尝试:
我添加了一个操作来运行函数mpb\\u remove\\u post\\u image on content\\u save\\u pre。。。
add_action(\'content_save_pre\', \'mpb_remove_post_image\');
问题是我无法使用content\\u save\\u pre访问post\\u id(我需要它来设置特色图像),因此我必须获取图像url并查找guid等于图像src的帖子。。。
function mpb_remove_post_image( $content ){
// strip slashes, I guess we need to readd slashes when we\'re done?
$content = stripslashes($content);
// get the first image src
$image_src = get_first_image($content);
// if there\'s an image src we can jam
if(!is_null($image_src)){
global $wpdb;
// query the db for an attachment with this image
//$thumb_id = $wpdb->get_var($wpdb->prepare("SELECT DISTINCT ID FROM $wpdb->posts WHERE guid=\'$image_src\'"));
$result = $wpdb->get_results("SELECT ID, post_parent FROM {$wpdb->posts} WHERE guid =\'$image_src\'");
$thumb_id = $result[0]->ID;
$post_id = $result[0]->post_parent;
// set the featured image
mpb_set_featured_image($thumb_id,$post_id);
// update_post_meta( $post_id, \'_thumbnail_id\', $thumb_id );
}
// remove any images in the content
$content = preg_replace("/<img[^>]+\\>/i", "", $content);
$content = addslashes($content);
return $content;
}
上面的代码引用了我编写的用于获取图像的函数。。。
function get_first_image($html){
require_once(\'simple_html_dom.php\');
$post_dom = str_get_dom($html);
// get the first image
$first_img = $post_dom->find(\'img\', 0);
// if any images then return the src attribute
if($first_img !== null) {
return $first_img->src;
}
return null;
}
要设置特色图像。。。
// set the featured image
function mpb_set_featured_image( $thumb_id, $post_id ){
update_post_meta( $post_id, \'_thumbnail_id\', $thumb_id );
}
我还尝试为save\\u post添加一个操作,但我在运行的函数中所做的任何操作似乎都会触发另一个再次运行save\\u post的钩子,因此它会变成一个无休止的循环。
有人知道(即使是高水平的)我可以采取什么步骤来实现这一点吗?下面是我想做的。。。
插入帖子时,1)获取第一个图像src 2)将其设置为自定义字段或将其设置为特色图像3)从帖子中删除图像。
edit - 如果你通过wp管理员添加帖子,我应该提到我发布的代码确实有效。但如果您通过移动应用程序添加,则不会。