¿Hay alguna forma de agregar la .htmlextensión a los tipos de publicaciones personalizadas sin complemento ?
Para publicaciones que puedo usar /%postname.htmlen 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 .htmltipo de mensaje personalizado?
custom-post-types
permalinks
url-rewriting
urls
usuario983248
fuente
fuente

function post-type_permalinkarrojará 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.htmllas 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.phppá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_linkfiltroPuede 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_rulesenlaces permanentes o utilizando las notas @toscho anteriores).Advertencias
the_permalink()usarían esto, por lo que es posible que deba agregar un filtro parapost_linkcapturar esos enlaces. También puede agregar alredirect_canonicalfiltro 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']->rulessi las reglas ya se conocen.