首页  >  问答  >  正文

获取WordPress中文件路径的附件ID

我知道文件的路径,并且希望获取附件 ID。

有一个函数 wp_get_attachment_url() 需要 ID 来获取 URL,但我需要它反向(尽管路径不是 URL)

P粉716228245P粉716228245388 天前569

全部回复(2)我来回复

  • P粉254077747

    P粉2540777472023-10-21 00:51:08

    更新:自 wp 4.0.0 以来,有一个新函数可以完成这项工作。我还没有测试过,但它是这样的:

    https://developer.wordpress.org/reference/functions/attachment_url_to_postid/


    旧答案:到目前为止,我发现的最佳解决方案如下:

    https://frankiejarrett.com /2013/05/get-an-attachment-id-by-url-in-wordpress/

    我认为这是最好的,原因有两个:

    • 它会进行一些完整性检查
    • [重要!]它与域无关。这有助于安全地移动场地。对我来说,这是一个关键功能。

    回复
    0
  • P粉282627613

    P粉2826276132023-10-21 00:44:12

    我用了 pippinsplugins.com 的这个很酷的截图

    将此函数添加到您的functions.php 文件中

    // retrieves the attachment ID from the file URL
    function pippin_get_image_id($image_url) {
        global $wpdb;
        $attachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid='%s';", $image_url )); 
            return $attachment[0]; 
    }

    然后在您的页面或模板中使用此代码来存储/打印/使用 ID:

    // set the image url
    $image_url = 'http://yoursite.com/wp-content/uploads/2011/02/14/image_name.jpg';
    
    // store the image ID in a var
    $image_id = pippin_get_image_id($image_url);
    
    // print the id
    echo $image_id;

    原始帖子在这里:https://pippinsplugins.com/retrieve-attachment-id-from-图片网址/

    希望有帮助;) 弗朗西斯

    回复
    0
  • 取消回复