구텐베르그에서 링크를 삽입하면 무조건적으로 embeded 되는 이러한 UX 나에게는 너무나 불편했다. 단지 링크로 삽입하고 싶었을 뿐인데
해당 구텐베르그의 자동임베트를 비활성화하는 방법은
functions.php에 해당 액션을 추가해주면 된다.
<?php
/**
구텐베르그에서 링크를 자동으로 임베디드로 바꾸는 것을 비활성화
*
@author Hansanghyeon
@copyright Hansanghyeon <a href="mailto:999@hyeon.pro">999@hyeon.pro</a>
**/
function disable_embeds_code_init()
{
// Remove the REST API endpoint.
remove_action('rest_api_init', 'wp_oembed_register_route');
// Turn off oEmbed auto discovery.
add_filter('embed_oembed_discover', '__return_false');
// Don't filter oEmbed results.
remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
// Remove oEmbed discovery links.
remove_action('wp_head', 'wp_oembed_add_discovery_links');
// Remove oEmbed-specific JavaScript from the front-end and back-end.
remove_action('wp_head', 'wp_oembed_add_host_js');
add_filter('tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin');
// Remove all embeds rewrite rules.
add_filter('rewrite_rules_array', 'disable_embeds_rewrites');
// Remove filter of the oEmbed result before any HTTP requests are made.
remove_filter('pre_oembed_result', 'wp_filter_pre_oembed_result', 10);
}
add_action('init', 'disable_embeds_code_init', 9999);
function disable_embeds_tiny_mce_plugin($plugins)
{
return array_diff($plugins, array('wpembed'));
}
function disable_embeds_rewrites($rules)
{
foreach ($rules as $rule => $rewrite) {
if (false !== strpos($rewrite, 'embed=true')) {
unset($rules[$rule]);
}
}
return $rules;
}
Code language: PHP (php)
embeded되는 ux가 비활성화되는 것이지 아직 링크가 링크로만 삽입되는 것은 불가능했다.
embeded되는 프로레스가 없어서져서 바로 링크로 변환하면 된다.