質問: "パス/ to/video/sample.mp4"]何らかの方法でコードをクリーンアップできると思われる場合は、googleに表示してください。ありがとう@wyrfel
回答: これを実行するget_image_send_to_editor()関数がwp-admin/includes/media.phpにあります:apply_filters( 'image_send_to_editor', $html, $id, $caption, $title, $align, $url, $size, $alt );。そのフィルタをフックしてみてください。編集:フィルタコールを手伝ってください...コールバックをフックするためのあなたのコールはこのようになります。add_filter('image_send_to_editor', array(&$myclassreference, 'filter_iste'), 10, 8); 10が優先順位です。調整する必要があるかもしれません... 10がデフォルトです。あなたのフィルタ関数はこのように見える必要があります。function filter_iste($html, $id, $caption, $title, $align, $url, $size, $alt) { ... return $html; } コールバックで何をする必要があるのかを導き出すために、まず最初に画面に渡されるすべてのパラメータをダンプします。さらに何か必要な場合は、渡した$ idを使用して添付ファイルデータとメタデータ全体をいつでも取得できます。基本的に、2つの異なる方法を試すことができます。 添付ファイルのmimeタイプをチェックし、それがビデオの場合は、$ htmlコンテンツ全体をショートコードに置き換えます。メディア設定にオプションを追加して、ユーザーが希望するかどうかをユーザーが構成できるようにすることができます。彼らがそうしているなら、あなたはただ全部を引っ掛ける必要があります。編集:ビデオのmimeタイプをチェックします。 $attachment = get_post($id); $mime_type = $attachment->post_mime_type; if (substr($mime_type, 0, 5) == 'video' && get_option('use_video_shorty_on_insert')) { ... } ショートコードがラップされている部分を削除するには、正規表現置換を使用して$ htmlコンテンツを実行します。regexpがどのように表示されるかは、$ htmlコンテンツが通常どのように表示されるかによって異なります。私は最初の選択肢に行きます、それはより堅実でより良いuiです。私はあなたがあなたにあなたのショートコードのためにオプションを変更する能力をユーザーに与えることを望むかもしれないことを理解する、しかしこれは別の話題である。 編集3:完全な例:// this seems to be an additional filter running for images only add_filter('image_send_to_editor', 'my_filter_iste', 20, 8); function my_filter_iste($html, $id, $caption, $title, $align, $url, $size, $alt) { $attachment = get_post($id); //fetching attachment by $id passed through $mime_type = $attachment->post_mime_type; //getting the mime-type if (substr($mime_type, 0, 5) == 'video') { //checking mime-type //if a video one, replace $html by shortcode (assuming $url contains the attachment's file url) $html = '[video src="'.$url.'"]'; } return $html; // return new $html } わかりました...これは試してみてください。// this seems to run when inserting a video via the 'from url' tab add_filter('video_send_to_editor_url', 'my_filter_vsteu', 20, 3); function my_filter_vsteu($html, $href, $title) { $html = '[video src="'.$href.'"]'; return $html; } ええと、もう1つあります。// this seems to run generically for any media item from the 'upload' tab add_filter('media_send_to_editor', 'my_filter_mste', 20, 3); function my_filter_mste($html, $send_id, $attachment) { if (substr($attachment->post_mime_type, 0, 5) == 'video') { $href = wp_get_attachment_url($attachment->id); $html = '[video src="'.$href.'"]'; } return $html; }