Error cannot create references to/from string offsets en WordPress

Hola Gente:

Este post es re pequeño y tiene que ver con un trabajo que estaba haciendo para un cliente. 
El trabajo consistía en migrar la instalación de WordPress de un hosting compartido a otro. 
Para esto respaldé la DB y los archivos de WordPress (incluyendo wp-content) y posteriormente los subí a la nueva cuenta de hosting.
Hubo cambios de DNS y esperé la correcta propagación.

El problema se encontraba en que al querer iniciar sesión daba error 500. El error era el siguiente:
PHP Fatal error:  Uncaught Error: Cannot create references to/from string offsets in wp-includes/user.php:54
Stack trace:
#0 wp-login.php(775): wp_signon(», »)
#1 {main}
  thrown in wp-includes/user.php on line 54

Después de revisar la base de datos, archivos. Borrarlos y volverlos a subir. Nada funcionaba.
Se me ocurrió mirar la versión de PHP del servidor y era la 7.1. Decidí bajarla a la 5.6 y funcionó de maravillas.


Habilitar mod_rewrite en Apache2

Hola a todos.

Este mod de Apache2 sirve para generar direcciones amigables y elegantes. Muchos sistemas hacen uso de esto, por ejemplo WordPress.

Escenario:

  • Ubuntu Server 12.04 LTS
  • Apache2 (instalado por el gestor de paquetes)
  • Un sitio configurado.

Habilitar el modulo

Como super usuario:
a2enmod rewrite

Modificar el archivo del sitio
Debe quedar esta porción del archivo de la siguiente forma:

Options FollowSymLinks
AllowOverride All

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

Reiniciar el servicio
Como super usuario:
service apache2 restart

Y ya quedará listo.

“No tiene los permisos necesarios para acceder a esta página” en WordPress

¡Esta migración de WordPress me ha sacado canas verdes! Esto se está volviendo más o menos complicado, pero no me las ganará.

Cuando levanté la DB, tuve muchos problemas con la tabla de wp_options así que decidí a copiar tabla por tabla, para ver si habían otras que me daban problemas.

En la misma base de datos había levantado el respaldo, tenía una instalación limpia de WordPress. Hice un volcado de tablas, una a una hasta que lo hice con la tabla wp_usermeta.

Como tenía dos instalaciones en la misma base de datos, lo más lógico es que tuvieran preifijos distintos para poder distinguirlas entre ellas.

Cuando realicé el volcado de la tabla, después al entrar al portal para probar los nombres de usuario vi el mensaje de error:

No tiene los permisos necesarios para acceder a esta página

La tabla wp_usermeta guarda el prefijo de las tablas de la instalación de WordPress, así que con esta consulta reemplacé el antiguo prefijo por el nuevo prefijo que estaba almacenado en la tabla
UPDATE `newprefix_usermeta` SET `meta_key` = REPLACE(`meta_key`, 'wp_', 'newprefix_');
Donde newprefix es el nuevo prefijo de la tabla y wp_ es el antiguo prefijo.

Con esto ya pude entrar al portal y a la administracion.

🙂

Consultar posts por categoría o por tag

Casi dos meses sin escribir. El trabajo me consumió. Esa es la verdad, pero ya estoy de vuelta anotantando los tips para que no se me olviden.

Hoy vengo con algo muy útil al momento de hacer templates para WordPress: Consultar posts por tag o por categoría.

WordPress tiene sus propias funciones para consultar, por lo que no se tiene que desarrollar las consultas en duro, sino se hace uso de amplia gama de funciones que tiene el núcleo de WordPress para la interacción con la base de datos.

Consultar por Categoría:


query_posts(array(
"posts_per_page"=>10,
"category_name"=>"especial-40-anos-del-golpe",
"paged"=>$paged,
"post__not_in"=>array($ignore)
));
?>

Consultar por tags:


'posts_per_page' => 4,
'tag_slug__in' => array('featured')
);
query_posts( $args ); ?>


A mi me sirvió de mucho para el proyecto que estamos llevando ahora.

Saludos.

Instalar WordPress en Windows Server 2008 R2

Los que siguen mis tweets en twitter, habran leido hace un par de dias atras que WordPress no funcionaba bien bajo IIS7 y por esto mismo, volvi a mi antiguo host que corre con Red Hat Enterprise.

Con la nueva version de Windows Server, se incluye una nueva version de Internet Information Services (IIS). Esta version es la 7.5. Dentro de sus mejoras, se incluye un soporte completo para el lenguaje PHP (todos sabemos que fue hecho para correr con Linux o con cualquier servidor descendiente de Unix) y  la instalacion de este lenguaje se puede realizar sin complicacion alguna, con la herramienta gratuita de Microsoft, llamada Web Platform Installer.

Lo primero que haremos, sera descargar esta herramienta desde su sitio oficial: http://www.microsoft.com/web/downloads/platform.aspx y la ejecutaremos. Tendremos una ventana tal cual como esta:

Seleccionamos Servidor Web  y seguimos los siguientes pasos:

Seguimos los pasos indicados y luego:

Como dependencia de WordPress, se instalara:

  • MySQL
  • PHP
  • CGI
  • URL Rewriter
  • Windows Cache Extension

Luego introducimos la contrase~a para el usuario root de MySQL. Despues de esto, descargara desde internet todo lo que tenga que descargar para realizar la instalacion de nuestro sistema web.

Una vez que la descarga ha concluido, nos pedira datos sobre la informacion del sitio web. Para efectos de este articulo, dejare todo tal cual como esta.

En la proxima ventana, nos pedira informacion referencial a la base de datos. Es importante que seleccionemos la opcion de «Crear una nueva base de datos» y proveemos informacion, tal como, el usuario root de MySQL y su contrase~a. Hacemos click en Instalar (o aceptar, o finalizar, ya ni recuerdo).

En la ventana siguiente, nos dara un resumen de la instalacion y hacemos click en «Iniciar WordPress». Dentro de la ventana en donde se ha iniciado el blog, tipeamos la informacion correspondiente al Titulo del blog y el correo electronico de contacto.

Y Voila, tenemos un blog en WordPress sobre IIS 7.5

Cualquier duda, posteala en los comentarios!