Cómo limpiar el buscador de enlaces de Gutenberg: excluir adjuntos en las sugerencias internas de WordPress

Quien trabaja a diario con WordPress suele asumir que el enlazado interno es una tarea rápida: seleccionar un texto, pulsar “insertar enlace” y empezar a escribir para que el editor sugiera entradas y páginas relevantes. Sin embargo, en el editor de bloques (Gutenberg) hay un detalle que en muchos sitios se convierte en un estorbo: el buscador de enlaces también incluye adjuntos (attachments), es decir, elementos de la biblioteca multimedia y sus páginas de adjunto.

El resultado es una lista de sugerencias más ruidosa, con resultados que rara vez son útiles para enlazar dentro de un artículo. En webs con mucho contenido y miles de imágenes, PDFs o recursos, el problema se agrava: el editor tarda más en mostrar lo que se busca y el usuario pierde tiempo filtrando mentalmente resultados que no aportan nada al enlazado editorial.

Por qué aparecen “attachments” en el insertador de enlaces

En WordPress, los adjuntos son un tipo de contenido particular. No son “solo archivos”; en muchos casos también generan una URL propia (la clásica “página de adjunto”), y por eso pueden colarse en sistemas de búsqueda y sugerencias.

En el editor clásico, este comportamiento suele ser menos visible. En el editor de bloques, en cambio, el insertador de enlaces incorpora un sistema de sugerencias que mezcla distintos tipos de resultados. Para el usuario final, el efecto es simple: al escribir “cocina”, además de artículos y páginas, aparecen archivos y adjuntos que comparten ese término en el título o metadatos.

Cuando el objetivo es enlazar contenidos editoriales (posts, páginas o CPTs concretos), ver adjuntos en medio puede ser contraproducente. No porque los adjuntos sean “inútiles” en sentido estricto —un PDF puede ser perfectamente enlazable—, sino porque el flujo de trabajo del enlazado interno suele priorizar contenido publicable y navegable, no recursos sueltos de la biblioteca.

Personalizar el buscador: lo que funciona… y lo que no basta en Gutenberg

Desde hace años, WordPress permite alterar los argumentos de búsqueda del insertador de enlaces mediante el filtro wp_link_query_args, que ajusta el comportamiento de wp_link_query. En muchos sitios, esto se usa para incluir o excluir tipos de contenido concretos y acelerar el enlazado interno. El problema es que, en Gutenberg, esa personalización no siempre cubre los casos en los que el editor incorpora sugerencias adicionales, y hay reportes y discusiones en torno a diferencias de comportamiento con el editor de bloques.

En resumen: para filtrar por tipos de contenido, wp_link_query_args sigue siendo una pieza importante; para eliminar adjuntos específicamente en el editor de bloques, hay escenarios en los que se necesita un enfoque distinto.

Dos caminos para excluir adjuntos del insertador de enlaces

En la práctica, hay dos enfoques que se repiten:

1) Usar un plugin específico

Existe un plugin en el repositorio oficial de WordPress que elimina las sugerencias de adjuntos en el insertador de enlaces de Gutenberg. Su ventaja es evidente: instalación rápida y sin tocar código. Su inconveniente también es habitual en instalaciones muy cuidadas: añadir un plugin más para una función muy concreta, cuando quizá se prefiere mantener la web con menos dependencias.

Este enfoque tiene sentido en entornos donde el cliente final gestiona el sitio y se quiere una solución fácil de activar y mantener.

2) Aplicar un snippet ligero en el editor (sin plugin)

La alternativa más “quirúrgica” pasa por inyectar un pequeño script en el editor para filtrar resultados y descartar los elementos cuyo type sea attachment. El método más difundido consiste en engancharse a enqueue_block_editor_assets y añadir JavaScript inline sobre el manejador wp-core-data, sobrescribiendo __experimentalFetchLinkSuggestions para filtrar resultados.

A continuación se muestra un ejemplo de implementación conocida en la comunidad (con atribución al autor que la popularizó). La lógica es clara: se guarda el fetch original, se llama, y después se filtra el array de resultados para excluir adjuntos.

/**
 * Excluir attachments del buscador de enlaces del editor (Gutenberg)
 * Autor: Fernando Tellado (AyudaWP)
 */
add_action( 'enqueue_block_editor_assets', 'ayudawp_excluir_attachments_link_suggestions' );
function ayudawp_excluir_attachments_link_suggestions() {

	wp_add_inline_script(
		'wp-core-data',
		'(function() {
			function initLinkFilter() {
				const settings = wp.data.select("core/block-editor").getSettings();
				const originalFetch = settings.__experimentalFetchLinkSuggestions;

				if (originalFetch) {
					wp.data.dispatch("core/block-editor").updateSettings({
						__experimentalFetchLinkSuggestions: async (search, config) => {
							const results = await originalFetch(search, config);
							return results.filter(item => item.type !== "attachment");
						}
					});
				}
			}

			const observer = new MutationObserver((mutations) => {
				mutations.forEach((mutation) => {
					if (mutation.type === "childList" && mutation.addedNodes.length > 0) {
						initLinkFilter();
					}
				});
			});

			window.addEventListener("load", () => {
				const root = document.querySelector(".editor-visual-editor");
				if (root) {
					observer.observe(root, {
						childList: true,
						subtree: true,
						attributes: false,
						characterData: false
					});
				}
				initLinkFilter();
			});
		})();'
	);
}
Lenguaje del código: PHP (php)

Qué conviene tener en cuenta antes de aplicarlo

Aunque el snippet es corto y suele funcionar “a la primera”, hay matices importantes que conviene explicar en lenguaje llano:

  • Usa una API experimental: el nombre __experimentalFetchLinkSuggestions ya sugiere que WordPress podría cambiarlo o modificar su comportamiento en versiones futuras. Si el sitio se actualiza con frecuencia, es buena idea validar tras cada actualización importante del core.
  • Dónde colocarlo: técnicamente se puede pegar en functions.php, pero en entornos profesionales suele ser más robusto integrarlo en un pequeño “mu-plugin” (plugin obligatorio) o un plugin de personalizaciones. Así se evita que un cambio de tema lo borre.
  • Qué se está filtrando exactamente: el filtro elimina resultados de tipo attachment en las sugerencias del insertador. Si el equipo editorial sí necesita enlazar adjuntos de forma habitual (por ejemplo, documentos descargables), quizá convenga mantenerlos o buscar un enfoque más fino (como priorizar posts/páginas, no eliminarlos por completo).
  • Impacto en la experiencia: para sitios con bibliotecas enormes, la mejora es muy palpable. El usuario teclea y encuentra antes lo que busca, con menos “ruido” visual.

Cómo comprobar que la mejora está funcionando

Una comprobación práctica, sin herramientas avanzadas:

  1. Abrir una entrada en el editor de bloques.
  2. Seleccionar una palabra y pulsar “enlace”.
  3. Escribir un término común que aparezca en títulos de imágenes o PDFs (por ejemplo, “banner” o “portada”).
  4. Verificar que las sugerencias ya no incluyen elementos multimedia y que aparecen principalmente entradas y páginas.

Si el listado sigue mostrando adjuntos, suele deberse a alguno de estos motivos: el script no se está encolando (por tema/caché), el handle wp-core-data no coincide en esa instalación, o WordPress ha cambiado internamente la forma de obtener sugerencias.


Preguntas frecuentes

¿Por qué Gutenberg muestra adjuntos en las sugerencias al insertar enlaces internos en WordPress?
Porque los adjuntos son un tipo de contenido y pueden tener su propia URL (página de adjunto). El editor de bloques mezcla resultados en sus sugerencias, y eso incluye attachment en muchos casos.

¿Se puede excluir “attachment” del insertador de enlaces sin instalar plugins?
Sí. Se puede inyectar un script en el editor (vía enqueue_block_editor_assets) para filtrar resultados y descartar los ítems cuyo tipo sea attachment.

¿El filtro wp_link_query_args sirve para quitar adjuntos del enlazado interno en Gutenberg?
wp_link_query_args es útil para ajustar tipos de contenido en la búsqueda de enlaces, pero en el editor de bloques puede no cubrir el comportamiento completo de las sugerencias; por eso existen soluciones específicas para filtrar adjuntos en Gutenberg.

¿Qué pasa si WordPress cambia la función __experimentalFetchLinkSuggestions?
Al ser una interfaz experimental, podría cambiar. En ese caso, el snippet dejaría de surtir efecto y habría que adaptarlo (o recurrir a un plugin que se mantenga actualizado).

Fuente: ayudaWP y X (Twitter)

Editor WPDirecto

Editor de WPDirecto potenciado con IA con el apoyo del equipo de edición.

Te puede interesar...

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    WordPress Directo
    WPDirecto.com es una revista especializada en WordPress y WooCommerce que ofrece una amplia gama de recursos, incluyendo tutoriales, análisis de plugins y plantillas, consejos de optimización y estrategias de SEO, para ayudar a los usuarios a mejorar y personalizar sus sitios web, manteniéndolos informados sobre las últimas novedades y tendencias en el mundo de WordPress.

    © 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.