如何从添加到同一自定义字段键的URL输出图像

时间:2017-12-16 作者:Dev

这是添加到名为images的同一自定义字段中的图像URL数组。

   $images = get_post_custom_values( \'images\' );
我需要在模板文件中打印所有这些图像。

2 个回复
最合适的回答,由SO网友:Dev 整理而成

这就是我最终编写解决方案的原因:

$images = get_post_custom_values( \'images\' );

if ( $images ) {

    echo \'<div class="image-wrap">\';

    if ( $image_header ) {
        echo \'<div class="header">\' . esc_html( $image_header ) . \'</div>\';
    }

    foreach ( (array) $images as $image ) {

        $url = esc_url( $image );
        $alt = esc_html( the_title_attribute( \'echo=0\' ) );

        if ( $url ) {
            echo \'<img class="image-section" src="\' . $url . \'" alt="\' . $alt . \'" />\';
        }

    }

    echo \'</div>\';

}

To get the i.d from a URL

您可以使用attachment_url_to_postid 像这样:

$url          = \'http://example.com/img.png\';
$id           = attachment_url_to_postid( $url );
$alt          = get_post_meta( $id, \'_wp_attachment_image_alt\', true );

SO网友:Cyclonecode

由于要为每个图像存储一个url,因此可以创建一个查询,根据guid:

global $wpdb;
$ids = array();
foreach ($images as $image_url) {
  $ids[] = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid=\'%s\';", $image_url));
}
另一种方法是简单地存储ID 而不是自定义字段中的url,则无需对每个图像执行上述查询。

结束

相关推荐

使用do_action_ref_array帮助回调

通过修改一些插件代码,我成功地获得了我想要的行为。然而,我想使用提供的钩子将我的修改移到插件代码之外,但我似乎无法使其工作。挂钩使用do\\u action\\u ref\\u数组。我能找到的访问php变量的唯一方法是向调试程序发送错误消息,这一事实无助于这种情况。日志文件。(像这样):function ra_func1($args) { $str = print_r($args, true); error_log($str); } add_action (