web-dev-qa-db-ja.com

(画像を挿入せずに)単に画像へのリンクを挿入する簡単な方法はありますか?

UPDATE 2018:下記のプラグインはWPで動作しなくなりました(バージョン4.5の時点で私は信じていますが)。代わりにそれを使ってください。

更新:ちょうど私が望んでいた以上のことをするこのプラグインを見つけました: https://wordpress.org/plugins/b09-link-to-existing-content/faq

私はこれで私の髪を引き抜いています、それはとても単純に思えますが、WP(私が見つけることができる)には簡単な方法はありません、そして以下をするプラグインはありません:

投稿では、テキストを選択してから、メディアライブラリの既存の(フルサイズ)画像へのリンクを追加します。投稿に画像を挿入したくないです。

私がこれを行うことができるとわかった唯一の方法は、画像を見つけ、ファイルリンクをコピーし、そしてurlを挿入/編集して貼り付けることです。あなたがページを見つけるのと同じ方法でそれを見つける方法があるべきです。同じダイアログ内でリンクする投稿。 (または多分あります、そして私はばかであるので私は単にそれを見つけることができません。)

6
Stephen

このページのコードに基づいて解決策を見つけました: https://core.trac.wordpress.org/ticket/22180

すべての添付ファイルの投稿ステータスは[継承]です。だから最初にあなたが検索する可能性のある投稿ステータスの一つとして "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ではありません。したがって、ファイルの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はすべての結果をループ処理し、メディアタイプを持つものを見つけ、添付URLをファイルのURLに置き換えます。

4
gdaniel