✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Agregue una configuración de enlace permanente personalizado para su tipo de publicación personalizada en WordPress

8

Este es un tutorial sobre cómo agregar una configuración personalizada a la página de administración de WordPress "Configuración> Enlaces permanentes" para definir el slug para su tipo de publicación personalizada. Si está desarrollando un tema o complemento para otros que tiene un tipo de publicación personalizado incorporado, el usuario apreciará agregar esta configuración porque le permite decidir la estructura de URL del tipo de publicación personalizada.

No explicaré en detalle cómo agregar un tipo de publicación personalizada; si no está seguro, le recomiendo que eche un vistazo a cómo agregar un tipo de publicación personalizada.

Suponga que tiene un código para registrar su tipo de publicación personalizada como esta:

La parte que nos interesa es el rewriteargumento. Aquí es donde definimos qué slug obtendrá el tipo de publicación frente a todas sus publicaciones. Su código para registrar un tipo de mensaje personalizado puede ser ligeramente diferente, por ejemplo, sin ‘ with_front‘, pero lo que nos interesa aquí es ‘ slug‘:

Con este código, prácticamente está codificando cuál será el slug de enlace permanente de las publicaciones. Un tipo de publicación para referencias puede usarse para muchos tipos de contenido y usuarios de temas; por ejemplo, proyecto, cartera, referencias de clientes, referencias de empresas, etc. Para que su tema sea flexible, es posible que desee permitir que el usuario del tema decida el slug del tipo de publicación por sí mismo.

¡Así que echemos un vistazo a cómo hacerlo!

Agregar y guardar el campo

El uso de la API de configuración de WordPress simplifica un poco esto para nosotros. Todo lo que necesitamos es agregar un campo de configuración y decirle a WordPress en qué página de administración queremos que se muestre, en nuestro caso, la página de configuración de enlaces permanentes. Tenga en cuenta que necesitamos escribir una función que también guarde el valor, lo cual haremos al final.

Enganchamos nuestra función al admin_initgancho y registramos nuestra configuración. Cuando registramos una configuración, definimos qué función debe ejecutar para generar la configuración:

add_action('admin_init', function() { add_settings_field('mytheme_reference_slug', __('References base', 'txtdomain'), 'mytest_reference_slug_output', 'permalink', 'optional'); });

El argumento de configuración cuatro de [add_settings_field](https://developer.wordpress.org/reference/functions/add_settings_field/)()to 'permalink'le dice a WordPress que agregue la configuración a la página de configuración de enlaces permanentes. El argumento número tres es la función que debe ejecutar WordPress al generar la configuración, una función que definimos a continuación (fuera de la función enganchada):

En esta función, simplemente generamos un texto de formulario básico <input>. Para su valueatributo, buscamos el valor de la configuración usando [get_option](https://developer.wordpress.org/reference/functions/get_option/)(). El placeholderatributo es opcional, pero es una buena práctica poner su base de slug predeterminada para que el usuario del tema sepa si quiere cambiar su valor o no.

Si guarda su código y va a su página de enlaces permanentes de WordPress ahora, debería ver su campo al final:

Agregue una configuración de enlace permanente personalizado para su tipo de publicación personalizada en WordPress

Por el momento la configuración no está guardando su valor, ese es el siguiente paso.

Necesitamos agregar otra función vinculada admin_initque verifique si nuestra configuración se envió o no en forma de estructura de enlace permanente. Y si es así, debe guardarse con [update_option](https://developer.wordpress.org/reference/functions/update_option/)().

add_action('admin_init', function() { if (isset($_POST['permalink_structure'])) { update_option('mytheme_reference_slug', trim($_POST['mytheme_reference_slug'])); } });

Al guardar la configuración de Permalinks, se envía un formulario, por lo que podemos obtener los valores a través de $_POSTla variable global de PHP. Los valores enviados desde el formulario se almacenan como una matriz con los atributos de nombre de entrada como claves. En nuestro caso, establecemos un atributo de nombre ‘ mytheme_reference_slug‘ en nuestra entrada, para que podamos acceder al valor enviado con $_POST['mytheme_reference_slug'].

Ahora la configuración debería estar funcionando completamente en la página de Configuración de Permalink. La parte final es adjuntar el valor de esta configuración a nuestro tipo de publicación personalizada.

Hacer que nuestro tipo de publicación personalizada use nuestra configuración

Para hacer que nuestro tipo de publicación personalizada use el valor personalizado de nuestra configuración, volvemos a la register_post_type()llamada de función y modificamos el rewriteargumento en algo como esto:

Todo lo que hacemos aquí es buscar el valor de nuestra nueva opción. Si está vacío 'reference', se utilizará el predeterminado ().

¡Y eso es! Ahora su tipo de publicación personalizada utilizará cualquier base de slug establecida en la página Configuración de enlaces permanentes. Puede agregar más configuraciones de la misma manera, por ejemplo, para taxonomías personalizadas.

El código completo

Todos juntos ahora.

Fuente de grabación: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More