@package y @subpackage: cómo usarlos con temas hijos

23 ene 2013, 16:44:36
Vistas: 14.1K
Votos: 8

Mi problema es con @package y @subpackage.

Visité el enlace sugerido (¿Para qué sirven los comentarios package y subpackage?). Allí no encontré nada que pudiera aplicar a mi problema, sino esta respuesta: "Estas son etiquetas PHPDoc - utilizadas para generar documentación de código significativa (y automatizada)". Esto es lo que tengo actualmente:

/**

* Contiene una lista de todos los hooks de acción personalizados y funciones correspondientes definidas para abc.

* Este archivo está incluido en functions.php:

*

* @package theme-name

* @subpackage Funciones

*/

Este no es un tema hijo de twenty ten. Hay una carpeta en la carpeta theme-name: functions. Mi tema hijo está en otra carpeta. He guardado el archivo functions.php en la carpeta de mi tema hijo. No sucede nada (al cambiar el contenido) ya sea cuando cambio el subpackage por el nombre de mi carpeta o dejo la palabra Funciones ahí.

¿Qué debería poner aquí?

/**

* Contiene una lista de todos los hooks de acción personalizados y funciones correspondientes definidas para abc.

* Este archivo está incluido en functions.php:

*

* @package theme-name

* @subpackage ???

*/
0
Todas las respuestas a la pregunta 4
0

Regla general: ¿tu código está empaquetado (es decir, incluido) con el código indicado por @package? Si no, estás usando un valor incorrecto para @package.

Para la mayoría de los Temas, esto es sencillo:

  • Los Temas incluidos en el núcleo usan @package: WordPress y @subpackage Theme-Name, porque están empaquetados y distribuidos con WordPress mismo
  • Todos los demás Temas usan @package: Theme-Name, porque están empaquetados y distribuidos por separado de WordPress.

Todos los Temas son una capa de abstracción de WordPress mismo y dependen de WordPress para ser mostrados. Pero esa dependencia no los convierte en un @subpackage de WordPress.

Yo aplicaría esta regla también a los Temas hijos. Son un paquete independiente, empaquetado y distribuido por separado del Tema padre/plantilla en el que se basan.

23 ene 2013 17:13:28
2

Al igual que dice la documentación original que encontraste, estas son etiquetas de PHPDocumenter. No afectan tu código en absoluto, así que cambiarlas no hará ninguna diferencia.

Sin embargo, son útiles para herramientas automatizadas que analizan tu código y crean documentación legible para humanos. Este PHPXref es un ejemplo de una versión analizada de WordPress.

En WordPress, el @package típicamente es WordPress. El @subpackage es el módulo específico que estés viendo. Por ejemplo, la parte superior de la clase WP_Http contiene:

/**
 * API simple y uniforme para solicitudes HTTP.
 *
 * Estandariza las solicitudes HTTP para WordPress. Maneja cookies, codificación/decodificación gzip, 
 * decodificación por fragmentos, si HTTP 1.1 y varias otras implementaciones complejas del protocolo HTTP.
 *
 * @link http://trac.wordpress.org/ticket/4779 Propuesta de API HTTP
 *
 * @package WordPress
 * @subpackage HTTP
 * @since 2.7.0
 */

En tu caso, @package sería el nombre de tu tema. @subpackage es opcional y solo realmente relevante si tienes otros módulos dentro de tu tema - tu archivo functions.php no es realmente un subpaquete del tema, así que en ese caso omitiría la etiqueta.

Los temas hijos no tienen que heredar la estructura @package/@subpackage de sus padres. Usa lo que tenga sentido para tu proyecto porque, en realidad, estos comentarios y notas son específicos para ayudar a otros a entender la estructura de tu proyecto.

23 ene 2013 16:59:17
Comentarios

Hola, Gracias a todos por sus respuestas. He dejado el nombre del paquete como el nombre de mi tema (espero haber entendido correctamente).

El archivo .php que tengo está en una carpeta de funciones en mi tema hijo, al igual que en el tema padre. No he logrado que funcione, así que pensé que el problema era con la forma en que package y subpackage hacían referencia a otros elementos.

Por lo que dicen, ese no es el caso y sigue sin funcionar. ¿Cómo hago para que el archivo .php funcione, por favor? (¿O debería ser un nuevo hilo?)

Marie Marie
24 ene 2013 01:35:27

¿Estás usando include() o require() en tu archivo principal functions.php para incluir el nuevo archivo PHP? Si no lo haces, nunca se cargará. Diría que abras un nuevo hilo, pero incluir archivos PHP no es un problema específico de WP; así que si decides abrir un nuevo hilo, te animaría a hacerlo en Stack Overflow.

EAMann EAMann
24 ene 2013 17:48:59
0

El @package especifica paquetes para agrupar clases o funciones y definiciones, también un tema para WordPress. Un @subpackage es hijo del tema, como una funcionalidad para un requisito específico o un tema hijo, un subpaquete.

Pequeña pista a la documentación de etiquetas phpdoc: http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg.html

23 ene 2013 16:57:42
0

Esas son etiquetas de documentación. Las usas para agrupar partes relacionadas de código con el propósito de documentarlo. Wikipedia tiene un buen diagrama con las diferentes etiquetas disponibles. La documentación oficial está en http://www.phpdoc.org/.

No pasa nada (cambiando el contenido) ni cuando cambio el subpackage por el nombre de mi carpeta ni cuando dejo la palabra "Functions" ahí.

Correcto. No pasa nada. Esto es solo para documentación de código. No notarás ningún efecto hasta que ejecutes tu código a través del script PHPDoc, el cual generará documentación pero no cambiará cómo funciona tu código.

Usa @package para identificar tu tema. Usa @subpackage, si lo deseas, para agrupar funciones dentro del tema - como por ejemplo un archivo lleno de widgets específicos del tema o algo similar.

¿Qué diferencia hay entre incluir o no la anotación @package?

http://codex.wordpress.org/Inline_Documentation

23 ene 2013 17:02:13