Estoy construyendo un sitio de Wordpress con varios tipos de publicaciones personalizadas. Cada tipo de publicación es una revista diferente. También tengo un metacampo personalizado para un año y número de revista.
Me gustaría tener URL (usa archive.php):
http://my_site/magazine/name/
http://my_site/magazine_name/year/
http://my_site/magazine_name/year/issue/
Lo hice por código:
function magazine_rewrite_tag() {
add_rewrite_tag('%issue_year%', '([0-9]{4})');
add_rewrite_tag('%issue%', '([0-9])');
}
add_action('init', 'magazine_rewrite_tag', 10, 0);
y:
function magazine_rewrite_rules() {
add_rewrite_rule('^([a-z]+)/([0-9]{4})/([0-9])?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]&issue=$matches[3]', 'top');
add_rewrite_rule('^([a-z]+)/([0-9]{4})?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]', 'top');
}
add_action('init', 'magazine_rewrite_rules');
Por supuesto, también tengo consultas personalizadas en archive.php. Y funciona bien.
Pero ahora, mis URL para artículos individuales no funcionan. Por defecto, es:
http://my_site/magazine/post-title
pero muestra todos los artículos de la revista como url (y usó la plantilla archive.php):
http://my_site/magazine/
¿Cómo agregar reglas de reescritura adecuadas para publicaciones personalizadas únicas? Es posible, me gustaría tener URL para publicaciones individuales (solo para los tipos de publicaciones personalizadas elegidas) en este formato:
http://my_site/magazine/year/issue/post-title
fuente
10
es la prioridad predeterminada . Puede dejar ambos en ese caso ... o probar un número más alto. (2) ¿Ha verificado las reglas de reescritura resultantes? También asegúrese de verificar el orden de esas reglas a medida que se procesan en su orden. Volcar$GLOBALS['wp_rewrite']
. (3) ¿Has agregadoquery_vars
que podría entrar en conflicto?Respuestas:
¡Encontré la solución! Un complemento Monkeyman Rewrite Analyzur fue muy útil: https://wordpress.org/plugins/monkeyman-rewrite-analyzer/
Así que ahora tengo esas URL de trabajo ...
single.php:
archive.php:
En una página de editor de publicación personalizada en wp-admin, uso el complemento de Campos personalizados avanzados para el año de emisión y la edición. También puedes definir metacampos por ti mismo.
A continuación, agregué etiquetas de reescritura para el año de emisión y el problema:
A continuación, agregué las reglas de reescritura de reescritura para cualquier combinación de URL:
Al final, reemplazo las URL estándar por las mías, con el año de emisión y la edición
fuente