¿Es posible volver a declarar / cambiar el slug del tipo de publicación personalizada existente de un complemento (sin simplemente editar el complemento)?
Es decir, si el complemento X crea un tipo de publicación personalizado con slug / uncookedtoast /, ¿es posible agregar un filtro a functions.php (o algo similar) que cambie el slug a / bread /?
custom-post-types
functions
slug
Edbury
fuente
fuente
Respuestas:
Sí, esto es posible, pero si el complemento está creando un tipo de publicación personalizada utilizando el
rewrite => array('slug' => 'post_type')
parámetro, entonces no es probable que pueda reemplazar la babosa.Cada vez que se crean tipos de publicaciones personalizadas, las reglas de reescritura de URL se escriben en la base de datos. Dependiendo de qué acción desencadena la creación del tipo de publicación personalizada (como la acción init ), WordPress vaciará las reglas de reescritura y restaurará las babosas del tipo de publicación personalizada independientemente de los cambios que intente realizar.
Dicho esto, puede proporcionar babosas personalizadas para los tipos de publicaciones personalizadas. El siguiente ejemplo supone que tiene un tipo de publicación personalizado
movies
y que está intentando cambiar la/movies/
babosa a/films/
.Para completar, aquí está la función básica utilizada para definir el
movies
tipo de publicación personalizada. El complemento al que hace referencia debería hacer algo como esto:Puede modificar la tabla de opciones proporcionando sus propias reglas personalizadas basadas en el tipo de publicación existente.
Básicamente, haremos esto:
Así es como puedes hacer esto:
Ahora, tendrá dos formas de acceder a sus películas:
/movies/Back-To-The-Future
/films/Back-To-The-Future
Tenga en cuenta que no recomiendo conectarlo
add_custom_rewrite_rule
a lainit
acción, ya que se disparará con demasiada frecuencia. Esto es solo un ejemplo. Un mejor lugar para aplicar la función sería la activación del tema, la activación del complemento, tal vez la acción save_post, etc. Dependiendo de lo que necesite hacer, es posible que solo necesite activarlo una o varias veces.En este punto, es posible que desee considerar actualizar los enlaces permanentes para el tipo de publicación personalizada para usar el '
/movies/
slug ' . Por ejemplo, si navega hacia/films/
, verá una lista de todas sus películas, pero al pasar el cursor sobre el título, se revelará que la/movies/
babosa todavía se está utilizando.Para ir un paso más allá, técnicamente podría instalar una redirección 301 para atrapar todos los enlaces
/movies/
para redirigir a su/films/
contraparte, pero todo esto depende de lo que intente hacer.fuente
$post
en laadd_custom_rewrite_rule()
función, pero arroja errores en el Administrador de WP que dice 'Intentando obtener la propiedad de no objeto'. ¿Cómo puedo obtener $ post para obtener el metavalor?Este código funcionó bien para el tema de mi hijo. Necesario para cambiar la babosa de "programa" a "lugar".
fuente
$args['has_archive'] = false
y esto funcionó.