Configura wordpress con SSL

La seguridad en las comunicaciones es necesaria, y más vale tarde que nunca. Ahora podemos usar SSL de forma gratuíta gracias a Let’s Encrypt.

Let’s Encrypt es un proyecto de la Linux Foundation con el que colaboran grandes empresas como Cisco y organizaciones como Electronic Frontier Foundation que tiene como objetivo proveer de manera gratuíta certificados de seguridad para todos. Hasta ahora y aún sigue siendo así los certificados cuestan entre 60 y 300 euros dependiendo del tipo de certificado, seguro, etc… con Let’s Encrypt podremos usar un certificado sin tener que gastarnos dinero, el único incoveniente es que caduca a los 90 días y hay que renovarlo. Aunque esto no quiere decir que lo tengas que hacer manualmente, ¡ que trabaje el CRON !

He instalado este certificado para mi dominio, de manera muy sencilla por que uso Plesk y existe un plugin[2] y he cambiado la configuración de wordpress en Ajustes / Generales / Dirección de WordPress (URL) y Dirección del sitio (URL) a https://www.senin.org

Te animo a que tambien uses SSL y muevas tu blog a ssl

[1]https://letsencrypt.org/getting-started/
[2]https://devblog.plesk.com/2015/12/lets-encrypt-plesk/

Warning: array_keys() expects parameter 1 to be array, boolean given in wp-admin/includes/class-wp-users-list-table.php on line 196

Otro castañazo para la colección de cosas que pasan todos los días …

En este caso, un wordpress multidominio que al listar usuarios aparece este mensaje de error

[shell]

Warning: array_keys() expects parameter 1 to be array, boolean given in /home/sitename/public_html/wp-admin/includes/class-wp-users-list-table.php on line 196

[/shell]

En este caso estuve trasteando bastante con las bases de datos ya que el cliente nos pidió algo muy específico para su worpdress y alguna cosa se quedaría perdida por ahí… el caso es que nos falta la informacion de los roles que se puede consultar con esta SQL:

[sql]

select * from wp_options where option_name=’wp_user_roles’ ;

[/sql]

Debería generar una fila de resultados y el contenido de ‘option_value‘ debe ser esto :

[php]

a:5:{s:13:»administrator»;a:2:{s:4:»name»;s:13:»Administrator»;s:12:»capabilities»;a:47:{s:13:»switch_themes»;b:1;s:11:»edit_themes»;b:1;s:16:»activate_plugins»;b:1;s:12:»edit_plugins»;b:1;s:10:»edit_users»;b:1;s:10:»edit_files»;b:1;s:14:»manage_options»;b:1;s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:6:»import»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:8:»level_10″;b:1;s:7:»level_9″;b:1;s:7:»level_8″;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;s:12:»delete_users»;b:1;s:12:»create_users»;b:1;s:14:»edit_dashboard»;b:1;}}s:6:»editor»;a:2:{s:4:»name»;s:6:»Editor»;s:12:»capabilities»;a:33:{s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;}}s:6:»author»;a:2:{s:4:»name»;s:6:»Author»;s:12:»capabilities»;a:10:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:4:»read»;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;s:22:»delete_published_posts»;b:1;}}s:11:»contributor»;a:2:{s:4:»name»;s:11:»Contributor»;s:12:»capabilities»;a:6:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:4:»read»;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;}}s:10:»subscriber»;a:2:{s:4:»name»;s:10:»Subscriber»;s:12:»capabilities»;a:2:{s:4:»read»;b:1;s:7:»level_0″;b:1;}}}

[/php]

Este chorro es el contenido serializado de un array de roles

Así que, para arreglar el error y que podamos editar tranquilamente los perfiles de los usuarios trendremos que editar o insertar el contenido por cada sitio del multistio WPMU.

Como nota, los sitios de wpmu usan las tablas de forma que agregan un ID a partir del site 2 de forma que el prefijo de las tablas es wp_2_options para el caso del site 2.

[sql]

insert into wp_3_options SET option_value=’a:5:{s:13:»administrator»;a:2:{s:4:»name»;s:13:»Administrator»;s:12:»capabilities»;a:47:{s:13:»switch_themes»;b:1;s:11:»edit_themes»;b:1;s:16:»activate_plugins»;b:1;s:12:»edit_plugins»;b:1;s:10:»edit_users»;b:1;s:10:»edit_files»;b:1;s:14:»manage_options»;b:1;s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:6:»import»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:8:»level_10″;b:1;s:7:»level_9″;b:1;s:7:»level_8″;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;s:12:»delete_users»;b:1;s:12:»create_users»;b:1;s:14:»edit_dashboard»;b:1;}}s:6:»editor»;a:2:{s:4:»name»;s:6:»Editor»;s:12:»capabilities»;a:33:{s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;}}s:6:»author»;a:2:{s:4:»name»;s:6:»Author»;s:12:»capabilities»;a:10:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:4:»read»;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;s:22:»delete_published_posts»;b:1;}}s:11:»contributor»;a:2:{s:4:»name»;s:11:»Contributor»;s:12:»capabilities»;a:6:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:4:»read»;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;}}s:10:»subscriber»;a:2:{s:4:»name»;s:10:»Subscriber»;s:12:»capabilities»;a:2:{s:4:»read»;b:1;s:7:»level_0″;b:1;}}}’ ,option_name=’wp_3_user_roles’ ;
insert into wp_4_options SET option_value=’a:5:{s:13:»administrator»;a:2:{s:4:»name»;s:13:»Administrator»;s:12:»capabilities»;a:47:{s:13:»switch_themes»;b:1;s:11:»edit_themes»;b:1;s:16:»activate_plugins»;b:1;s:12:»edit_plugins»;b:1;s:10:»edit_users»;b:1;s:10:»edit_files»;b:1;s:14:»manage_options»;b:1;s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:6:»import»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:8:»level_10″;b:1;s:7:»level_9″;b:1;s:7:»level_8″;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;s:12:»delete_users»;b:1;s:12:»create_users»;b:1;s:14:»edit_dashboard»;b:1;}}s:6:»editor»;a:2:{s:4:»name»;s:6:»Editor»;s:12:»capabilities»;a:33:{s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;}}s:6:»author»;a:2:{s:4:»name»;s:6:»Author»;s:12:»capabilities»;a:10:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:4:»read»;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;s:22:»delete_published_posts»;b:1;}}s:11:»contributor»;a:2:{s:4:»name»;s:11:»Contributor»;s:12:»capabilities»;a:6:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:4:»read»;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;}}s:10:»subscriber»;a:2:{s:4:»name»;s:10:»Subscriber»;s:12:»capabilities»;a:2:{s:4:»read»;b:1;s:7:»level_0″;b:1;}}}’ ,option_name=’wp_4_user_roles’ ;
insert into wp_5_options SET option_value=’a:5:{s:13:»administrator»;a:2:{s:4:»name»;s:13:»Administrator»;s:12:»capabilities»;a:47:{s:13:»switch_themes»;b:1;s:11:»edit_themes»;b:1;s:16:»activate_plugins»;b:1;s:12:»edit_plugins»;b:1;s:10:»edit_users»;b:1;s:10:»edit_files»;b:1;s:14:»manage_options»;b:1;s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:6:»import»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:8:»level_10″;b:1;s:7:»level_9″;b:1;s:7:»level_8″;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;s:12:»delete_users»;b:1;s:12:»create_users»;b:1;s:14:»edit_dashboard»;b:1;}}s:6:»editor»;a:2:{s:4:»name»;s:6:»Editor»;s:12:»capabilities»;a:33:{s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;}}s:6:»author»;a:2:{s:4:»name»;s:6:»Author»;s:12:»capabilities»;a:10:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:4:»read»;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;s:22:»delete_published_posts»;b:1;}}s:11:»contributor»;a:2:{s:4:»name»;s:11:»Contributor»;s:12:»capabilities»;a:6:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:4:»read»;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;}}s:10:»subscriber»;a:2:{s:4:»name»;s:10:»Subscriber»;s:12:»capabilities»;a:2:{s:4:»read»;b:1;s:7:»level_0″;b:1;}}}’ ,option_name=’wp_5_user_roles’ ;
insert into wp_6_options SET option_value=’a:5:{s:13:»administrator»;a:2:{s:4:»name»;s:13:»Administrator»;s:12:»capabilities»;a:47:{s:13:»switch_themes»;b:1;s:11:»edit_themes»;b:1;s:16:»activate_plugins»;b:1;s:12:»edit_plugins»;b:1;s:10:»edit_users»;b:1;s:10:»edit_files»;b:1;s:14:»manage_options»;b:1;s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:6:»import»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:8:»level_10″;b:1;s:7:»level_9″;b:1;s:7:»level_8″;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;s:12:»delete_users»;b:1;s:12:»create_users»;b:1;s:14:»edit_dashboard»;b:1;}}s:6:»editor»;a:2:{s:4:»name»;s:6:»Editor»;s:12:»capabilities»;a:33:{s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;}}s:6:»author»;a:2:{s:4:»name»;s:6:»Author»;s:12:»capabilities»;a:10:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:4:»read»;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;s:22:»delete_published_posts»;b:1;}}s:11:»contributor»;a:2:{s:4:»name»;s:11:»Contributor»;s:12:»capabilities»;a:6:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:4:»read»;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;}}s:10:»subscriber»;a:2:{s:4:»name»;s:10:»Subscriber»;s:12:»capabilities»;a:2:{s:4:»read»;b:1;s:7:»level_0″;b:1;}}}’ ,option_name=’wp_6_user_roles’ ;
insert into wp_7_options SET option_value=’a:5:{s:13:»administrator»;a:2:{s:4:»name»;s:13:»Administrator»;s:12:»capabilities»;a:47:{s:13:»switch_themes»;b:1;s:11:»edit_themes»;b:1;s:16:»activate_plugins»;b:1;s:12:»edit_plugins»;b:1;s:10:»edit_users»;b:1;s:10:»edit_files»;b:1;s:14:»manage_options»;b:1;s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:6:»import»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:8:»level_10″;b:1;s:7:»level_9″;b:1;s:7:»level_8″;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;s:12:»delete_users»;b:1;s:12:»create_users»;b:1;s:14:»edit_dashboard»;b:1;}}s:6:»editor»;a:2:{s:4:»name»;s:6:»Editor»;s:12:»capabilities»;a:33:{s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;}}s:6:»author»;a:2:{s:4:»name»;s:6:»Author»;s:12:»capabilities»;a:10:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:4:»read»;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;s:22:»delete_published_posts»;b:1;}}s:11:»contributor»;a:2:{s:4:»name»;s:11:»Contributor»;s:12:»capabilities»;a:6:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:4:»read»;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;}}s:10:»subscriber»;a:2:{s:4:»name»;s:10:»Subscriber»;s:12:»capabilities»;a:2:{s:4:»read»;b:1;s:7:»level_0″;b:1;}}}’ ,option_name=’wp_7_user_roles’ ;
insert into wp_8_options SET option_value=’a:5:{s:13:»administrator»;a:2:{s:4:»name»;s:13:»Administrator»;s:12:»capabilities»;a:47:{s:13:»switch_themes»;b:1;s:11:»edit_themes»;b:1;s:16:»activate_plugins»;b:1;s:12:»edit_plugins»;b:1;s:10:»edit_users»;b:1;s:10:»edit_files»;b:1;s:14:»manage_options»;b:1;s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:6:»import»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:8:»level_10″;b:1;s:7:»level_9″;b:1;s:7:»level_8″;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;s:12:»delete_users»;b:1;s:12:»create_users»;b:1;s:14:»edit_dashboard»;b:1;}}s:6:»editor»;a:2:{s:4:»name»;s:6:»Editor»;s:12:»capabilities»;a:33:{s:17:»moderate_comments»;b:1;s:17:»manage_categories»;b:1;s:12:»manage_links»;b:1;s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:17:»edit_others_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:10:»edit_pages»;b:1;s:4:»read»;b:1;s:7:»level_7″;b:1;s:7:»level_6″;b:1;s:7:»level_5″;b:1;s:7:»level_4″;b:1;s:7:»level_3″;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:17:»edit_others_pages»;b:1;s:20:»edit_published_pages»;b:1;s:13:»publish_pages»;b:1;s:12:»delete_pages»;b:1;s:19:»delete_others_pages»;b:1;s:22:»delete_published_pages»;b:1;s:12:»delete_posts»;b:1;s:19:»delete_others_posts»;b:1;s:22:»delete_published_posts»;b:1;s:20:»delete_private_posts»;b:1;s:18:»edit_private_posts»;b:1;s:18:»read_private_posts»;b:1;s:20:»delete_private_pages»;b:1;s:18:»edit_private_pages»;b:1;s:18:»read_private_pages»;b:1;}}s:6:»author»;a:2:{s:4:»name»;s:6:»Author»;s:12:»capabilities»;a:10:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:20:»edit_published_posts»;b:1;s:13:»publish_posts»;b:1;s:4:»read»;b:1;s:7:»level_2″;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;s:22:»delete_published_posts»;b:1;}}s:11:»contributor»;a:2:{s:4:»name»;s:11:»Contributor»;s:12:»capabilities»;a:6:{s:12:»upload_files»;b:1;s:10:»edit_posts»;b:1;s:4:»read»;b:1;s:7:»level_1″;b:1;s:7:»level_0″;b:1;s:12:»delete_posts»;b:1;}}s:10:»subscriber»;a:2:{s:4:»name»;s:10:»Subscriber»;s:12:»capabilities»;a:2:{s:4:»read»;b:1;s:7:»level_0″;b:1;}}}’ ,option_name=’wp_8_user_roles’ ;

[/sql]

 

Os dejo aquí un chorro de sql para copiar y pegar 😀

 

 

nota mental: depurar traducciones con wordpress

Nota mental: Cuando tenga que revisar por qué no funciona la traducción de un site con WordPress debo depurar esta funcion
[shell]
#./wp-includes/l10n.php
function load_theme_textdomain( $domain, $path = false ) {
        $locale = apply_filters( ‘theme_locale’, get_locale(), $domain );

        if ( ! $path )
                $path = get_template_directory();

        // Load the textdomain from the Theme provided location, or theme directory first
        $mofile = «{$path}/{$locale}.mo»;
        if ( $loaded = load_textdomain($domain, $mofile) )
                return $loaded;

        // Else, load textdomain from the Language directory
        $mofile = WP_LANG_DIR . «/themes/{$domain}-{$locale}.mo»;
        return load_textdomain($domain, $mofile);
}
[/shell]

En este fichero se cargan todos los ficheros de traducciones que se van a usar para traducir el theme.

fin de la nota 😀

wordpress 404 en todas las páginas menos en home

En el curro hemos estado trazando durante algunas horas una instalación de wordpress que mostraba sólo algunos contenidos correctamente y otros nos daba un 404 aún siendo páginas válidas.
Resumiendo tenemos unas cuantas páginas de contenido con contenido padre/hijo. Los contenidos ‘hijo’ se ven sin problemas pero los padre devolvían error 404 aún siendo correctos.
Después de haber revisando muchas veces el .htaccess y configuración de WP comenzamos a tracear hasta que dimos con que el plugin ‘Polylang’ para WordPress era el responsable de este problema.

Tras un vistazo a soporte de Polylang hemos visto esta entrada de ‘danielgc‘ en
http://wordpress.org/support/topic/error-404-on-every-page-except-home

y nos ha funcionado la solución que comenta que consite en marcar esta opción :

Keep /language/ in pretty permalinks. Example: http://192.168.1.2/wordpress/language/en/

Polylang config

wordpress + qtranslate fecha malformada en comentarios

Es una caso que me lleva ocurriendo mucho tiempo y es un viejo conocido como se puede ver en este enlace date and time troubles.

El plugin qtranslate es bastante útil pero con los comentarios da este problema, aparece la fecha del comentario algo como esto:

[shell]
%A %B %e%q, %Y and %I:%M %p
[/shell]

El problema viene del fichero wp-include/comment-template.php

[shell]
printf( __(‘%s at %s’),   get_comment_date() , get_comment_time()); ?></a><br/><?php edit_comment_link(__(‘(Modificar)’),’&nbsp;&nbsp;’,» );
[/shell]

Las funciones getcommentdate() y getcommenttime() devuelven valores que son correctos debido a las conversiones y formatos del idioma, por lo que un truco para salir adelante es modificar el fichero y forazarle el formato a las funciones getcommentdate() y getcommentime():

[shell]
printf( __(‘%s at %s’), get_comment_date(‘d-M-Y’) , get_comment_time(‘H:i:s’)); ?></a><br/><?php edit_comment_link(__(‘(Modificar)’),’&nbsp;&nbsp;’,» );
[/shell]

Supongo que hay una forma menos guarrera que tocar el código de wordpress y dejarlo funcionando correctamente. Sobretodo por que cuando actualice la versión de wordpress macharé este cambio y me tocará volver a corregirlo.

Error: f.easing[i.animatedProperties[this.prop]] is not a function

Para que alguien le solucione la vida :

Este error aparece en una instalación de wordpress 3.3.2 al instalar lightbox y con ‘theme’ Zerafin :

Error: f.easing[i.animatedProperties[this.prop]] is not a function

Es un problema de compatibilidades de jquery… los que no nos dedicamos a programar con jquery es para nosotros bastante tedioso solucionar este tipo de problemas…

En este caso, hay un problema de compatiblidad de jquery.1.7.1.js con jquery.easing.1.1.js y se puede solucionar así

# en la carpeta que contiene el theme Zerafin wp-content/themes/Zerafin/js
wget http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js
wget http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.compatibility.js

y modificar el header.php del theme

eliminar :
wp_enqueue_script('easing', get_stylesheet_directory_uri() . '/js/jquery.easing.1.1.js');

agregar :
wp_enqueue_script('easing', get_stylesheet_directory_uri() . '/js/jquery.easing.1.3.js');
wp_enqueue_script('easing-comp', get_stylesheet_directory_uri() . '/js/jquery.easing.compatibility.js');

y funciona.

Microsoft cierra Window Live Spaces

El el 16 de marzo de 2011, el servicio Windows Live Spaces se cierra para ofrecer un nuevo servicio basado en WordPress. Lo usuarios de cuentas de Windows Live están recibiendo notificaciones con los pasos a realizar para migrar su servicio a la nueva plataforam.
Se recuera que a partir del 4 de Enero ya no se podrán realizar cambios en el blog de Windows Live Spaces pero seguirá siendo visible. hasta el 16 de Marzo de 2011 que se cerrará totalmente.

Más información en Centro de ayuda de Windows Live spaces

[wordpress]

WordPress ya está maduro y cosas como esta hacen darle un voto positivo.

Instalado un template en un cliente me aparece este error:

Warning: touch() [function.touch]: SAFE MODE Restriction in effect. The script whose uid is 10277 is not allowed to access /tmp owned by uid 0 in /var/www/vhosts/dominio.comm/httpdocs/wordpress/wp-admin/includes/file.php on line 199  Download failed. Could not create Temporary file.

Es normal en los alojamientos con safe_mode activado y seguramente no quieran desactivarlo por seguridad.

Para ello, nos creamos nuestro propio tmp ( teniendo en cuenta los problemas de seguridad que podría ocasionar )

mkdir /var/www/vhosts/dominio.com/httpdocs/tmp 

# ajustar el usuario real para asignarle al directorio
chown dominio.com:psacln  /var/www/vhosts/dominio.com/httpdocs/tmp

# para que el usuario apache pueda escribir tambien
chmod 777 /var/www/vhosts/dominio.com/httpdocs/tmp

Ahora lo más interesante ,a gregar a nuestro fichero wp-config.php, esta linea :

define('WP_TEMP_DIR','/var/www/vhosts/dominio.com/httpdocs/tmp');

Con este cambio lo que hemos hecho ha sido preprar un tmp e indicarle a wordpress que por defecto ese es el directorio temporal.

Me ha gustado mucho encontrarme con estos detalles que demuestran la madured del proyecto.

[wordpress] Fatal error: Call to undefined function wp() in /var/www/vhosts/dominio.tld/httpdocs/wordpress/wp-blog-header.php on line 14

Al hacer una instalación nueva de wordpress, puedes contrarte con este error :

Fatal error: Call to undefined function wp() in /var/www/vhosts/dominio.tld/httpdocs/wordpress/wp-blog-header.php on line 14

Es debido a que el fichero wp-config.php esté vacio o mal configurado. La mejor opción es coger el fichero wp-config-sample.php y rellenarlo a mano. Sólo hay que especificar base de datos, usuariom, password y host.

Puedes usar esta plantilla para wordpress 3.0 si no tienes nada a mano

<?php

define('DB_NAME', 'nombre_base_datos');

/** MySQL database username */
define('DB_USER', 'usuario');

/** MySQL database password */
define('DB_PASSWORD', 'password');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

#
# generado automaticametne desde: 
# https://api.wordpress.org/secret-key/1.1/salt/
#

define('AUTH_KEY',         'pQ<@NK%: 42QBJ&$bhPZZzqs!vGZ}8Ph$R>j~x8}Z+V+[%]10Z~oy!N#^#/pT&}l');
define('SECURE_AUTH_KEY',  ';CT`bP|YA>[+|i(Kza+*K4x<[8ce(cfEzJefBUnlm$kGo=|+#MDuc+3Eka3oEcUp');
define('LOGGED_IN_KEY',    'Ym_wh[WKu;q_}@N$Y<A?u{{W5hg3&^K5`l~RTIdiO;=|TiG/BD~FMWF b^qz7L_4');
define('NONCE_KEY',        'qDwCcdk?T8-PHo pFNOu(yCUsi0^<$lP05A/A=D2PZ+5|xZ<-z:Z&=p?7$JK:hUT');
define('AUTH_SALT',        'YTJ1VYm1m[-9),*uxvB#c@MgFBAVpf6m~8Eg._uZ(|$c-%nsM}_#3&48=H_E2PY<');
define('SECURE_AUTH_SALT', '{RNOa149Lnw6jyQDMJ9L%KUTXoir.R$NLO.BHO=,A]#G;=C$ OS_>4ed+l}ZUpF}');
define('LOGGED_IN_SALT',   '<fu@&qA2j&NK]1RLOI 0QtH/NY%.8ufHJrwum kc9>Cmv!h}pkYHU.<y~1%#y09o');
define('NONCE_SALT',       'G1NkJF3E3xI_KFu|[oLk??o6GagegY(6*=Gkk!adIv%bUNnU #@7R&ZI85;~R$ki');



$table_prefix  = 'wp_';

define ('WPLANG', '');

define('WP_DEBUG', false);


if ( !defined('ABSPATH') )
        define('ABSPATH', dirname(__FILE__) . '/');


require_once(ABSPATH . 'wp-settings.php');

Nota: el fichero acaba sin cerrar el script php , SIN ?>