¿Cuál es el propósito de la etiqueta canónica de administración?

3

He buscado a través de Google y recursos para desarrolladores de WordPress , pero no surgió nada.

Entiendo el propósito de la etiqueta rel="canonical" en la interfaz de un sitio web (es parte del SEO de la página web), pero no entiendo su propósito en el área de administración de WordPress (backend).

Ejemplo en una instalación de WordPress local:

<link id="wp-admin-canonical" rel="canonical" href="http://localhost/wordpress/wp-admin/plugins.php" />

¿Cuál es su propósito en el área de administración de WordPress?

    
pregunta Binar Web 13.05.2018 - 09:09

3 respuestas

9

¿Qué es frontend & ¿Qué es el backend en WordPress?

El CÓDIGO PHP, las consultas SQL, etc. que se ejecutan en su servidor son el backend & Cualquier CÓDIGO HTML / CSS / JavaScript que llegue al navegador como resultado, es la interfaz .

Entonces, aunque algunas partes de la "interfaz" de su sitio pueden estar restringidas por una barrera protegida por contraseña, todavía se considera como interfaz. Es más preciso si lo llama Panel de administración de WordPress , en lugar de llamarlo backend.

¿Por qué las páginas del Panel de administración de WordPress necesitarían rel="canonical" ?

A menos que se trate de un caso de uso muy, muy raro en el que pueda hacer públicas las páginas de administración, no puede haber beneficios de SEO. Sin embargo, rel="canonical" todavía se puede usar (incluso para las páginas del panel de administración): Como parte de la práctica estándar .

Para una página web, rel="canonical" significa:

  

La URL de la página web que se reconoce como ir a la URL para una colección de diferentes páginas que tienen un contenido muy similar o similar.

Dado que esta es la práctica estándar, incluso si no obtienes ningún beneficio de SEO, sigue siendo lo correcto.

De dónde viene:

WordPress agregó la función wp_admin_canonical_url() en WordPress 4.2. La parte rel="canonical" estuvo allí desde el principio & Los desarrolladores de WordPress no encontraron ninguna razón para eliminarlo desde entonces.

El cambio original provino del ticket de soporte titulado: Eliminar los parámetros del mensaje de las URL de administrador en la barra de direcciones del navegador . Y si pasa por la discusión, verá que la parte rel=canonical se agregó como parte de la práctica estándar, nada más .

Compruebe el comentario del desarrollador original:

  
  1. rel=canonical es una práctica estándar, y creo que es un buen uso de ella.
  2.   

¿Por qué WordPress necesita la etiqueta <link id="wp-admin-canonical" /> ?

Como se desprende de la discusión anterior, rel=canonical parte de la etiqueta <link> solo existe para la práctica estándar; sin embargo, la etiqueta <link> :

<link id="wp-admin-canonical" rel="canonical" href="__URL__" />

en sí es funcional. Se agregó para mantener la URL & limpiar el historial del navegador de nombres de variables de consulta de un solo uso .

Por ejemplo, si activa un complemento, en la parte superior del panel de administración, aparece un mensaje como:

  

Complemento activado.

Después de eso, diga que cierra el navegador & abrirlo de nuevo más tarde (o simplemente actualizar la página). En ese momento, antes de WordPress 4.2 (si el navegador está configurado para abrir la última pestaña abierta), la página aún diría:

  

Complemento activado

aunque nada realmente sucedió esta vez. Lo mismo se aplica cuando usa el botón de retroceso del navegador (porque el mensaje se muestra en respuesta a los parámetros de URL de un solo uso del historial del navegador también).

Esto sucede porque WordPress te redirige a una URL como:

http://example.com/wp-admin/plugins.php?activate=true&plugin_status=all&paged=1&s=

después de activar un complemento. Observe la cadena de consulta activate=true en la URL. Esto no tiene otra finalidad que mostrarle el mensaje " Complemento activado ". Por lo tanto, no tiene uso en la URL ni en el historial del navegador después de que se le envíe el mensaje " Complemento activado ".

Por eso, en WordPress 4.2 % se introdujo la función wp_admin_canonical_url() , donde la etiqueta <link id="wp-admin-canonical" /> mantiene la referencia a la versión canónica de la URL sin la variable de consulta de un solo uso parte & luego, el CÓDIGO de JavaScript de la función lo reemplaza de la entrada del historial del navegador.

Al momento de escribir esto, hay 23 variables de consulta de un solo uso que se pueden eliminar de la URL canónica de wp_removable_query_args() function:

'activate', 'activated', 'approved', 'deactivate', 'deleted',
'disabled', 'enabled', 'error', 'hotkeys_highlight_first', 
'hotkeys_highlight_last', 'locked', 'message', 'same', 'saved',
'settings-updated', 'skipped', 'spammed', 'trashed', 'unspammed', 
'untrashed', 'update', 'updated', 'wp-post-new-reload'

Sin embargo, se puede extender desde complementos o temas usando el gancho de filtro removable_query_args .

    
respondido por el Fayaz 10.07.2018 - 13:32
4

Wordpress usa esto en el administrador para eliminar algunos argumentos de consulta de la url.

Se genera mediante la función wp_admin_canonical_url()

function wp_admin_canonical_url() {
    $removable_query_args = wp_removable_query_args();

    if ( empty( $removable_query_args ) ) {
        return;
    }

    // Ensure we're using an absolute URL.
    $current_url  = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
    $filtered_url = remove_query_arg( $removable_query_args, $current_url );
    ?>
    <link id="wp-admin-canonical" rel="canonical" href="<?php echo esc_url( $filtered_url ); ?>" />
    <script>
        if ( window.history.replaceState ) {
            window.history.replaceState( null, null, document.getElementById( 'wp-admin-canonical' ).href + window.location.hash );
        }
    </script>
<?php
}

El wp_removable_query_args() devuelve una matriz con los argumentos de consulta para los que queremos eliminar las predeterminadas ejemplo.

$removable_query_args = array(
    'activate',
    'activated',
    'approved',
    'deactivate',
    'deleted',
    'disabled',
    'enabled',
    'error',
    'hotkeys_highlight_first',
    'hotkeys_highlight_last',
    'locked',
    'message',
    'same',
    'saved',
    'settings-updated',
    'skipped',
    'spammed',
    'trashed',
    'unspammed',
    'untrashed',
    'update',
    'updated',
    'wp-post-new-reload',
);

Así que ahora, por ejemplo, si editamos alguna publicación, la url es http://example.com/wp-admin/post.php?post=32&action=edit

Cuando guardamos la publicación, cambiamos la url a /wp-admin/post.php?post=32&action=edit&message=1 pero con JS cambiamos la url que almacenamos en el historial de nuestro navegador con window.history.replaceState y eliminamos la consulta de message .

Y luego, si cambiamos la url y hacemos clic, volveremos a nuestra url almacenada en lugar de a la url con el message .

Y no veremos el mensaje: Publicación actualizada. Ver publicación de nuevo.

Se puede probar con la creación de una nueva publicación, puede ver el mensaje y luego ir a la página de inicio y hacer clic en Atrás. y verás que no verás el mensaje porque nuestra url del historial del navegador ha cambiado para que no aparezca el mensaje de consulta arg.

Entonces, ¿por qué usar rel="canonical" ?

Por lo que veo, wordpress core no tiene un propósito real, excepto semántica para usar esta etiqueta. Esta etiqueta está destinada a decirnos que la URL de algunos está duplicada a otra URL.

Pero como otros rastreadores utilizaron esta etiqueta como una opción para buscar duplicaciones, podemos crear nuestro propio rastreador en nuestra área de administración con algún propósito y podemos usar esta etiqueta.

    
respondido por el Shibi 09.07.2018 - 13:49
0

No hay una razón válida para tener uno en el backend (también conocido como admin). La única es que la función rel_canonical en wp-includes/link-template.php agregada de la acción en el archivo default-filters.php siempre está activada, independientemente de si está al frente o al backend.

Y como el comportamiento no parece ser un problema para la comunidad, no se modifica: el desarrollador que trabaja en Wordpress pasaría su tiempo mejorando algo importante que algo que no agregaría ningún valor a Wordpress.

    
respondido por el Cedric 09.07.2018 - 13:49

Lea otras preguntas en las etiquetas