Custom Content Types y Custom Taxonomies en WordPress

Hace unos días me escribió un amigo para preguntar cuánto cobrar por implementar WordPress con Custom Post Types. Aunque no es algo que tenga valorizado como ítem extra, obviamente los Custom Post Types y las Custom Taxonomies le dan un valor agregado al resultado final. En resumen, la producción y la administración se tornan más simples.

Como existen numerosos tutoriales y plugins sobre el tema pasaré de repetir lo que ya otros se han tomado el esfuerzo de explicar, prefiero concentrarme en algunos tips que, aunque obvios, pueden ser de mayor utilidad.

Todo pasa por la Arquitectura de Contenidos

Antes de decidir su usar  Custom Post Types y Custom Taxonomies es necesario saber si realmente es meritorio hacerlo y para ello nada mejor un buen trabajo de AI previo. Es necesario visualizar con claridad la naturaleza y cantidad de los objetos (unidades o contenidos) que manipularemos y que convivirán en un sitio, vale decir: páginas de contenidos fijos, noticias, fichas de productos, posts de uno o más blogs, catálogos, etc.  Para mí, lo primordial es simplificar al máximo en función de las necesidades del cliente, entendiendo que éste es usuario de un sistema que, en principio, debe ser sencillo de administrar.

Post type básicos:  Posts y Pages

Es una obviedad, pero objetos diferentes en cuanto a la forma de su contenido son técnicamente post_type distintos. Por ejemplo, noticias y catálogo o fichas de portafolio y anotaciones de un blog.

Continue reading Custom Content Types y Custom Taxonomies en WordPress

Problemas comunes I: Max File Uploads en PHP

Como programador y administrador de servidores muchas veces me encuentro con problemas simples que, por diversas razones, se repiten cada cierto tiempo. Algunas veces son tareas que fueron realizadas en  proyectos antiguos que nadie recuerda o conoce; otras, en cambio, se pierden en la trivialidad de lo cotidiano y, por lo tanto, no están debidamente documentadas para que el resto de las personas con las que trabajo puedan resolverlas por su cuenta.

La idea entonces es crear y compartir algo así como un repositorio de soluciones rápidas a estos problemas comunes. Por tanto, si se animan, espero que en los comentarios pregunten lo que sea pertinente al tema expuesto o propongan nuevos problemas.

Problema: aumentar tamaño máximo para subir archivos con PHP

Estamos trabajando con un gestor de contenidos como Wordpres o Drupal y necesitamos subir mediante un formulario archivos PDF, PNG o DOC que pesan sobre 2 MB, pero resulta que no se puede y nos sale un mensaje de error.

El problema no es del gestor de contenidos. La configuración por defecto de PHP en un servidor Linux permite copiar o subir archivos desde la máquina local al servidor que tengan un tamaño máximo de 2MB. Aunque no es recomendable aumentar esta cuota en entornos poco protegidos o públicos es posible hacerlo de la siguiente forma:

serumax@bunbury:~$  sudo nano /etc/php5/apache2/php.ini
[sudo] password for serumax:

Ingresamos la clave sudo de nuestra máquina y con CTRL+W procedemos a buscar “upload_max_filesize“:

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

Nos fijamos que el parámetro file_uploads esté en On y donde dice upload_max_filesize = 2M reemplazamos por el tamaño que necesitamos, pero ojo con el tiempo de ejecución de los script en PHP, que por defecto es de 30 segundos (se archiva un nuevo draft) y si subimos un archivo muy grande esto puede verse afectado.

Por ejemplo, podemos aumentarlo a 5 Megas:

; Maximum allowed size for uploaded files.
upload_max_filesize = 5M

Guardamos con CTRL+O y salimos con CTRL+X.  Con esto ya hemos hecho lo más díficil. Ahora sólo nos resta volver a iniciar Apache, sí Apache, para  que los cambios tengan efecto. Esto porque PHP generalmente corre como módulo de Apache

serumax@bunbury:~$sudo /etc/init.d/apache2 restart
[sudo] password for serumax:

o mejor solo recargamos la nueva configuración

serumax@bunbury:~$sudo /etc/init.d/apache2 reload
[sudo] password for serumax:

Como comentario final, este ejemplo lo hice pensando en un servidor Linux  Ubuntu 8.04, con Apache2 y PHP5. Espero que sea de utilidad 🙂

Aburrido de Serux y del puto servidor

El maldito servidor que tenía era un asco… se caía día por medio y ahora me último me había metido una línea de publicidad en la cabecera. Se andaban con puras huevadas. Por suerte venía probando este otro server que se ve más serio y que, por los demás, me permite configurar el dominio. Claro que tiene su costo… ya no podré usar más SeruX, el conjunto de script que hacían funcionar el antiguo blog. Lamentable, porque todo lo había hecho yo. Si bien tenía algunas deficiencias, ya me había acostumbrado y funcionaba acorde a mis necesidades. Ahora me he instalado el WordPress… ya veré como rola y ya me meteré en su código para ve como lo puedo moldear a mi gusto. Por lo menos aprenderé para seguir hinchando pelotas con SeruX… En una de esas sale algo bueno. Por lo pronto, si hay interesados en ayudarme a configurar WordPress, en postear o en cualquier cosa, pues escríbanme al mail.