当前位置:首页>Wordpress教程>WordPress开发函数attachment_url_to_postid()

WordPress开发函数attachment_url_to_postid()

WordPress开发函数attachment_url_to_postid(),尝试将附件URL转换为帖子ID。

WordPress开发函数attachment_url_to_postid(),尝试将附件URL转换为帖子ID。

用法:

attachment_url_to_postid( string $url )

参数:

$url

(string) (必需) 要解析的URL。

返回

(int)找到的post ID,失败时为0。

来源:

文件: wp-includes/media.php

function attachment_url_to_postid( $url ) {

global $wpdb;

$dir = wp_get_upload_dir();

$path = $url;

$site_url = parse_url( $dir['url'] );

$image_path = parse_url( $path );

// Force the protocols to match if needed.

if ( isset( $image_path['scheme'] ) && ( $image_path['scheme'] !== $site_url['scheme'] ) ) {

$path = str_replace( $image_path['scheme'], $site_url['scheme'], $path );

}

if ( 0 === strpos( $path, $dir['baseurl'] . '/' ) ) {

$path = substr( $path, strlen( $dir['baseurl'] . '/' ) );

}

$sql = $wpdb->prepare(

"SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = '_wp_attached_file' AND meta_value = %s",

$path

);

$results = $wpdb->get_results( $sql );

$post_id = null;

if ( $results ) {

// Use the first available result, but prefer a case-sensitive match, if exists.

$post_id = reset( $results )->post_id;

if ( count( $results ) > 1 ) {

foreach ( $results as $result ) {

if ( $path === $result->meta_value ) {

$post_id = $result->post_id;

break;

}

}

}

}

/**

* Filters an attachment ID found by URL.

*

* @since 4.2.0

*

* @param int|null $post_id The post_id (if any) found by the function.

* @param string $url The URL being looked up.

*/

return (int) apply_filters( 'attachment_url_to_postid', $post_id, $url );

}

更新日志:
WordPress开发函数attachment_url_to_postid()

用户贡献的笔记

(由Nilambar Sharma于5年前贡献)

从附件URL获取帖子ID

echo attachment_url_to_postid( 'http://example.com/wp-content/uploads/2016/05/castle-old.jpg' );

输出:

123

文章链接:https://www.7zt.cn/3002.html
文章标题:WordPress开发函数attachment_url_to_postid()
文章版权:柒主题 所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!
本文最后更新发布于2022年11月20日 17时51分00秒,某些文章具有时效性,若有错误或已失效,请在下方留言或联系:21660010@qq.com
声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 柒主题 或点击右侧 私信:站长 反馈,我们将尽快处理。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索