El uso de Jetpack Portfolio Project en el tema secundario de WordPress no llama a la plantilla personalizada de archivo

3 minutos de lectura

Tengo un tema secundario que usa el nuevo tipo de publicación personalizada Jetpack Portfolio Project y deseo modificar archive.php para mostrar resultados personalizados.

Estoy usando: WordPress v3.9.2; Tema: Niño de Punto, Jetpack se instala con Tipos de contenido personalizados activados y Proyectos de cartera seleccionados en Configuración. (No se instalan otros complementos que implementen la funcionalidad de la cartera).

Según el Códice:

Archivos de plantilla

De la misma manera, las publicaciones individuales y sus archivos se pueden mostrar utilizando los archivos de plantilla single.php y archive.php, respectivamente.

  • Las publicaciones individuales de un tipo de publicación personalizado usarán single-{post_type}.php
  • y sus archivos usarán archive-{post_type}.php
  • y si no tiene esta página de archivo de tipo de publicación, puede pasar BLOG_URL?post_type={post_type}

donde {post_type} es el argumento $post_type de la función register_post_type().

Tengo entendido que si crea archivos llamados single-jetpack-portfolio.php y archive-jetpack-portfolio.php dentro del tema secundario, WordPress usará automáticamente esos archivos en lugar de single.php y archive.php respectivamente.

Sin embargo, mi tema secundario llama con éxito a single-jetpack-portfolio.php, pero ignora por completo archive-jetpack-portfolio.php, en lugar de llamar a archive.php en el elemento secundario.

Estoy atrapado por una solución.

Del códice anterior, agregar a la URL “?post_type=jetpack-portfolio” hace que el tema secundario use archive-jetpack-portfolio.php correctamente, pero ¿debería modificar manualmente cada URL para especificar esto explícitamente? ¿No debería WordPress detectar esto automáticamente, como lo hace con el archivo single-jetpack-portfolio.php? ¿Como puedo resolver esto?

Yo he tratado:

  • Restablecer los enlaces permanentes en caso de que estuviera relacionado con eso (cambiar la opción en Configuración y guardar y volver)
  • Agregar un archivo archive.php al niño además de archive-jetpack-portfolio.php (inicialmente no tenía un archivo.php en el niño, por lo que usó el archivo.php del padre)
  • Publicar un nuevo proyecto de cartera de Jetpack y actualizar una página existente (leí en alguna parte que publicar algo podría hacer que WordPress vea los cambios)

Gracias de antemano por cualquier ayuda.

Tuve el mismo problema descrito por el OP. Cuando visité mydomain.com/portfolio, usaría la plantilla de archivo personalizada. Cuando traté de ver un tipo de proyecto, el valor predeterminado era archive.php normal. Me pregunto si OP estaba viendo una página de tipo de proyecto sin darse cuenta.

Mi solución fue crear un archivo de plantilla de taxonomía. Después de jugar con él me di cuenta de que

  • taxonomía.php
  • taxonomía-jetpack-portfolio-type.php
  • taxonomy-jetpack-portfolio-type-{nombre-del-tipo-de-proyecto}.php

todo funcionó correctamente, dependiendo de cuán específico quisiera obtener.

Hay más información en el códice de wordpress: http://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display

Espero que esto ayude a alguien.

Estaré trabajando en esto los próximos días.

Deberías probar esto en el niño. archive.php primeras lineas:

<?php
    if( is_post_type_archive('jetpack-portfolio') )
        get_template_part('content', 'jetpack-portfolio');

    elseif( is_tax('jetpack-portfolio-type') || is_tax('jetpack-portfolio-tag') )
        get_template_part('archive', 'jetpack-portfolio');

    else continue;
?>

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad