¿Hay alguna forma de agregar la .html
extensión a los tipos de publicaciones personalizadas sin complemento ?
Para publicaciones que puedo usar /%postname.html
en la configuración de enlaces permanentes
Para las páginas que puedo usar:
add_action('init', 'change_page_permalink', -1);
function change_page_permalink() {
global $wp_rewrite;
if ( strstr($wp_rewrite->get_page_permastruct(), '.html') != '.html' )
$wp_rewrite->page_structure = $wp_rewrite->page_structure . '.html';
}
Para tipos de publicaciones personalizadas ???
¿Hay algún código similar al anterior que me permita cambiar o agregar el .html
tipo de mensaje personalizado?
custom-post-types
permalinks
url-rewriting
urls
usuario983248
fuente
fuente
function post-type_permalink
arrojará un error. Si no recibe este error, entonces tiene algo dolorosamente mal con su configuración de depuración. Además, modifique su pregunta con las intenciones correctas en las líneas. Gracias./$postname.html
las publicaciones, ¿cómo puedo usar lo mismo para los tipos de publicaciones personalizadas?-
funciona en los nombres de funciones ...Respuestas:
Esto parece funcionar:
Crea las reglas de reescritura como
post-type/post-name.html
. Puede usar matrices para crear las reglas para solo un conjunto de tipos de publicación en lugar de hacerlo para todos ellos.Formatee la nueva estructura de enlaces permanentes para estos tipos de publicaciones.
Y luego deje de redirigir las URL canónicas para eliminar la barra diagonal final. Esto podría necesitar más trabajo, ya que probablemente querrá mantener la redirección en la mayoría de los casos.
Como otros han dicho por aquí, después de hacer lo anterior, deberá eliminar las reglas, y eso es posible visitando la
options-permalink.php
página de administraciónDashboard -> Settings -> Permalinks
.fuente
wpse_59024_
(ID de pregunta) para evitar conflictos de copia / pasta;). . . Y tiene la ventaja adicional de saber a qué respuesta pertenece ese código en nuestra biblioteca de fragmentos. . . . . +1 Spot on!post_type_link
filtroPuede agregar una regla de reescritura para esto que reemplace los enlaces permanentes incorporados, por ejemplo, para un tipo de mensaje personalizado "producto" ...
(No olvide eliminar sus reglas volviendo a guardar sus
flush_rules
enlaces permanentes o utilizando las notas @toscho anteriores).Advertencias
the_permalink()
usarían esto, por lo que es posible que deba agregar un filtro parapost_link
capturar esos enlaces. También puede agregar alredirect_canonical
filtro para redirigir los enlaces permanentes predeterminados, de modo que / product / foo y / product / foo / redirect a /product/foo.html.fuente
Si prefiere un complemento de WordPress para manejar el trabajo por usted, consulte Permalinks de tipo de publicación personalizada en el repositorio de complementos de WordPress. Probado en WordPress 3.4.1 y funciona perfectamente.
Después de activar el complemento, solo navegue hasta Panel de control -> Configuración -> Enlaces permanentes. Puede agregar reescrituras específicas para cada tipo de publicación personalizada registrada.
fuente
flush_rules()
debe llamarse en des / activación solo porque es muy lento. Puede verificar$GLOBALS['wp_rewrite']->rules
si las reglas ya se conocen.