返回介绍

attachment_url_to_postid()

发布于 2017-09-10 21:32:06 字数 2928 浏览 1101 评论 0 收藏 0

attachment_url_to_postid( string $url )

Tries to convert an attachment URL into a post ID.


description


参数

$url

(string) (Required) The URL to resolve.


返回值

(int) The found post ID, or 0 on failure.


源代码

File: 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 FROM $wpdb->postmeta WHERE meta_key = '_wp_attached_file' AND meta_value = %s",
		$path
	);
	$post_id = $wpdb->get_var( $sql );

	/**
	 * 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 );
}

更新日志

Versiondescription
4.0.0Introduced.

相关函数

Uses

  • wp-includes/functions.php: wp_get_upload_dir()
  • wp-includes/media.php: attachment_url_to_postid
  • wp-includes/plugin.php: apply_filters()
  • wp-includes/wp-db.php: wpdb::get_var()
  • wp-includes/wp-db.php: wpdb::prepare()

Used By

  • wp-admin/includes/ajax-actions.php: wp_ajax_set_attachment_thumbnail()
  • wp-includes/customize/class-wp-customize-upload-control.php: WP_Customize_Upload_Control::to_json()

User Contributed Notes

  1. Skip to note content You must log in to vote on the helpfulness of this noteVote results for this note: 1You must log in to vote on the helpfulness of this note Contributed by Nilambar Sharma

    Get post ID from attachment URL

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

    Output:

    123

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文