問題描述

更新:剛剛發現這個插件,做了我想要和更多:https://wordpress.org/plugins/b09-link-to-existing-content/faq

我拉着我的頭髮,這似乎很簡單,但在 WP(我可以找到) 沒有簡單的方法,沒有插件,將做以下:

在一篇文章中,我想選擇一些文本,然後在我的媒體庫中添加一個現有 (全尺寸) 圖像的鏈接。我不想在我的帖子中插入圖像。

我發現能夠做到這一點的唯一方法是找到圖像,複製文件鏈接,然後去插入/編輯 url 並粘貼它。應該有一種方法來找到它,就像找到頁面或在同一個對話框中鏈接的帖子。 (或者也許有,我根本無法找到它,因為我是個白痴)

最佳解決方案

我找到了一個基於本頁代碼的解決方案:https://core.trac.wordpress.org/ticket/22180

所有附件文件的狀態為’inherit’ 。所以首先你需要添加”inherit” 作為可能的帖子狀態之一來搜索。您可以使用 wp_link_query_args 過濾器來做到這一點。

function my_wp_link_query_args( $query ) {

     if (is_admin()){
          $query['post_status'] = array('publish','inherit');
     }

     return $query;

}

add_filter('wp_link_query_args', 'my_wp_link_query_args');

默認情況下,您將獲得的 URL 將是附件網址,而不是文件 url 。所以如果你需要文件 url,你可以使用過濾器 wp_link_query 過濾結果。

function my_modify_link_query_results( $results, $query ) {

  foreach ($results as &$result ) {
    if ('Media' === $result['info']) {
      $result['permalink'] = wp_get_attachment_url($result['ID']);
    }
  }

  return $results;

}

add_filter('wp_link_query', 'my_modify_link_query_results', 10, 2);

foreach 循環遍歷所有結果,找到具有 Media 類型的結果,並使用文件 url 替換附件 URL 。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。