GET_ATTACH_ID()仅获取更新后第一个附加映像的ID

时间:2017-05-09 作者:Hosein.HzK

我使用解释的代码here 从包含图像url的$value(图像已上载且存在于媒体库中)获取自定义帖子类型中帖子的附加图像id。该帖子包含用户提交的一些数据和图像&;通过表单上传。当我第一次从“快速编辑”菜单发布帖子时,该功能工作正常,可以检索所有附加图像的id,然后我可以使用update\\u field命令,使用图像附件id数组将图像添加到acf图像字段。当我从编辑页面(非快速编辑菜单)更新/发布帖子时,会出现此问题。在这种情况下,该函数仅返回第一个附加图像的id,并为其他附加图像返回0。然后acf图像字段仅显示该图像。

other Description that maybe useful:

我有一个名为“pics”的自定义字段,其中包含通过表单上传的图像的url,其值如下:

pic03.png
http://insell.ir/wp-content/uploads/fsqm-files/pic03.png

pic02.png
http://insell.ir/wp-content/uploads/fsqm-files/pic02.png

pic01.jpg
http://insell.ir/wp-content/uploads/fsqm-files/pic01.jpg
我在模板中使用此代码从“pics”自定义字段提取URL,并将其保存在$attach\\u ids as array中,最后使用以下内容更新acf image字段:

<?php

$img = get_post_meta( get_the_ID(), \'pics\', true);
$imgList = explode("\\n", $img);
$attach_ids = array();
foreach ( $imgList as &$value ) {
    if ( strpos( $value, \'http:\' ) !== false ) {
        $attachment_id = get_attachment_id( $value );
        array_push($attach_ids, $attachment_id);
    }
}
// print_r ($attach_ids);
$images = update_field( \'slider_portfolio\', $attach_ids, get_the_ID() ); 
$images = get_field(\'slider_portfolio\');

?>
在案例1(通过快速编辑发布帖子)中,print\\r($attach\\u id);显示包含所有图像id的正确输出:

Array ( [0] => 1276 [1] => 1278 [2] => 1277 )
在案例2(通过编辑页面发布/更新帖子)中,print\\r($attach\\u id);显示此输出:

Array ( [0] => 0 [1] => 0 [2] => 1277 )
任何帮助都将不胜感激。非常感谢你。

1 个回复
最合适的回答,由SO网友:Hosein.HzK 整理而成

3天后,我发现问题是因为$imgList数组中url末尾有空格(最后一个url除外)!!!所以我补充道trim 对于每个url($值),并解决了问题。。。

<?php

$img = get_post_meta( get_the_ID(), \'pics\', true);
$imgList = explode("\\n", $img);
$attach_ids = array();

foreach ( $imgList as &$value ) {
    if ( strpos( $value, \'http:\' ) !== false ) {
        $value = trim($value);
        $attachment_id = get_attachment_id( $value );
        array_push($attach_ids, $attachment_id);
    }
}

$images = update_field( \'slider_portfolio\', $attach_ids, get_the_ID() ); 
$images = get_field(\'slider_portfolio\');

?>
没有任何问题get_attachment_id() 作用太完美了!

结束

相关推荐

WordPress V4.3中的WP_Widget弃用错误

这个错误直到今天早上我将wordpress网站更新到4.3版本时才发生。同一主机上的其他两个站点(都使用CPanel作为主机的管理门户)没有任何问题。在这一个有问题的网站公司。com尽管在wordpress管理门户和live网站上,页面顶部出现了多次重复的错误,即:我今天已经阅读了这篇文章,这可能与从PHP4升级到PHP5有关,尽管同一服务器上的其他WP站点没有问题。我还禁用了站点上的所有插件进行测试,问题仍然存在。除了从备份中恢复(这不容易做到,而且可能会导致自身错误)之外,今天/最近是否还有其他人存在