gpt4 book ai didi

WordPress : excluding images 'inserted into post' from get_children

转载 作者:行者123 更新时间:2023-12-02 23:54:52 26 4
gpt4 key购买 nike

我有一个页面,顶部有幻灯片,图像内嵌到内容区域中。

我需要从幻灯片中排除已插入帖子中的图像。

目前我排除了“特色图片”,但这限制了我只能插入一张可以插入帖子中的图片。

这是我现有的代码:

$thumbnail = get_post_thumbnail_id();
$images = get_children( 'post_type=attachment&post_mime_type=image&order=asc&orderby=menu_order&post_parent='.$post->ID .'&exclude='.$thumbnail);

以前,我曾使用图像元数据的描述字段通过输入“排除”来排除图像。对于最终用户来说,这并不像我希望的那样好。

任何建议、插件或基于代码!

更新:我已经更新了代码,所以现在我从 post_content 获取所有图像 URL,并根据幻灯片图像检查它们。

    $content = $post->post_content;
$inlineImages = array();
preg_match( '/src="([^"]*)"/i', $content, $inlineImages ) ;
$thumbnail = get_post_thumbnail_id($post->ID);

$images = get_children( 'post_type=attachment&post_mime_type=image&order=asc&orderby=menu_order&post_parent='.$post->ID .'&exclude='.$thumbnail);

if ($images) {
echo '<div id="slideshow">';
foreach ( $images as $attachment_id => $attachment ) {
$image = wp_get_attachment_image_src( $attachment_id,array(900,265));

if (!in_array($image[0],$inlineImages)) {
echo '<img src="'.$image[0].'" width="'. $image[1] .'" height="'. $image[2].'">';
}
}
echo '</div>';
}

这是一个不错的解决方案,尽管正则表达式可以改进。

更好的步骤是将图像数组添加到自定义字段中,这在帖子/页面更新或发布时更新。

关于如何解决这个问题有什么建议吗?

最佳答案

只需要做同样的事情。您最初的方法就是我想要的方式 - 只需排除已插入帖子中的任何图像,使其不再出现在 slider 中。但我不希望客户必须做任何特别的事情才能实现这一点。这是我的代码。

$args = array( 'post_type' => 'attachment', 'post_mime_type'=>'image','numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID ); 
$attachments = get_posts($args);
preg_match_all("/<img[^']*?src=\"([^']*?)\"[^']*?>/", $post->post_content, $matches, PREG_PATTERN_ORDER);
/* $matches[1] holds the urls as an array */
foreach ( $attachments as $attachment ) {
if(in_array($attachment->guid, $matches[1])){ continue;}
wp_get_attachment_image( $attachment->ID , 'slider_size');
}

第一位获取与帖子相关的所有图像。 $preg_match_all 获取帖子正文中的所有图像。然后,当我们循环遍历图像以在 slider 中显示它们时,in_array 会检查插入的图像的 url 以及即将添加到 slider 中的图像的 url,如果存在匹配,则跳到下一张。

感谢您的帖子,让我朝着正确的方向思考。

关于WordPress : excluding images 'inserted into post' from get_children,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com