wp_ajax_send_link_to_editor
Ajax handler for sending a link to the editor.
Description
wp_ajax_send_link_to_editor();
Generates the HTML to send a non-image embed link to the editor.
Backward compatible with the following filters: - file_send_to_editor_url - audio_send_to_editor_url - video_send_to_editor_url
Usage
if ( !function_exists( 'wp_ajax_send_link_to_editor' ) ) { require_once ABSPATH . '/wp-admin/includes/ajax-actions.php'; } // NOTICE! Understand what this does before running. $result = wp_ajax_send_link_to_editor();
Defined (1)
The function is defined in the following location(s).
- /wp-admin/includes/ajax-actions.php
- function wp_ajax_send_link_to_editor() {
- global $post, $wp_embed;
- check_ajax_referer( 'media-send-to-editor', 'nonce' );
- if ( ! $src = wp_unslash( $_POST['src'] ) )
- if ( ! strpos( $src, '://' ) )
- $src = 'http://' . $src;
- if ( ! $src = esc_url_raw( $src ) )
- if ( ! $link_text = trim( wp_unslash( $_POST['link_text'] ) ) )
- $link_text = wp_basename( $src );
- $post = get_post( isset( $_POST['post_id'] ) ? $_POST['post_id'] : 0 );
- // Ping WordPress for an embed.
- $check_embed = $wp_embed->run_shortcode( '[embed]'. $src .'[/embed]' );
- // Fallback that WordPress creates when no oEmbed was found.
- $fallback = $wp_embed->maybe_make_link( $src );
- if ( $check_embed !== $fallback ) {
- // TinyMCE view for [embed] will parse this
- $html = '[embed]' . $src . '[/embed]';
- } elseif ( $link_text ) {
- $html = '<a href="' . esc_url( $src ) . '">' . $link_text . '</a>';
- } else {
- $html = '';
- }
- // Figure out what filter to run:
- $type = 'file';
- if ( ( $ext = preg_replace( '/^.+?\.([^.]+)$/', '$1', $src ) ) && ( $ext_type = wp_ext2type( $ext ) )
- && ( 'audio' == $ext_type || 'video' == $ext_type ) )
- $type = $ext_type;
- /** This filter is documented in wp-admin/includes/media.php */
- $html = apply_filters( $type . '_send_to_editor_url', $html, $src, $link_text );
- wp_send_json_success( $html );
- }