Hack WordPress

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Canviar la data d'un post

Un post té múltiples entrades en la taula wp_posts, corresponents a l'entrada primeres més les revisions posteriors i els autosave.

mysql> desc wp_posts;

Si vull modificar tots els posts associats a un post_pare a la mateixa data:

mysql> select ID, post_date,post_date_gmt,post_modified,post_modified_gmt,post_name,post_parent from wp_posts where post_title='titol_post';
mysql> update wp_posts set post_date='2008-12-28',post_date_gmt='2008-12-28',post_modified='2008-12-28',post_modified_gmt='2008-12-28' where post_title='titol_post';

Si només vull modificar el post original, buscaré per post_parent=0:

mysql> update wp_posts set post_date='2008-12-28',post_date_gmt='2008-12-28',post_modified='2008-12-28',post_modified_gmt='2008-12-28' where post_title='titol_post' and post_parent=0;

Sobre la traducció al català/castellà...

Al final agafo com a tema de referència un que es diu curved-10.

No és veritat que després d'instal.lar el wordpress en català estigui tot en català. Concretament, les plantilles també s'han de traduir. Això ho faig a pèl. Per exemple, No Comments es tradueix per Sense comentaris, i això ho faig cercant aquesta informació directament en els fitxers.

Més complicat és el format de la data que la canvio en la zona d'administració i no em fa cas. Això és perquè les plantilles estan ficades de forma absoluta. La manera de procedir és buscar en el codi font, després buscar en el fitxer php directament i identificar el que he de substituir. Finalment veig que he de substituir

<?php the_time('F jS, Y') ?> per <?php the_time('j F Y') ?> en els fitxers themes/curved-10/index.php, themes/curved-10/search.php i themes/curved-10/single.php

Això s'haurà de fer amb tot: Leave a Reply, logged as..., etc.

Treballar en local i en remot

NOTA: tot aquest tema s'ha evitat editant el fitxer /etc/hosts. Ara ja puc fer www.joanillo.org en local

El wordpress només pot estar configurat en local o en remot. Estic fent referència, dins de la zona d'administració (wp-admin/options-general.php), als valors Adreça del WordPress i Adreça del blog, que no tenen perquè coincidir. Si poso http://localhost/blog no puc accedir remotament, i si poso http://wikijoan.dyndns.org/blog no puc accedir localment.

Fent una cerca pel Google, sembla ser que efectivament no es pot treballar en els dos modes, la qual cosa per a mi és un inconvenient greu. Algú apunta a què el router es pot configurar per treballar en mode loopback, que permetria fer http://wikijoan.dyndns.org/blog des de dins de la xarxa (ho he de mirar).

Una altra possibilitat que jo he trobat és tocar directament els paràmetres d'una forma que sigui fàcil i còmoda. Investigant una mica veig que aquesta informació es guarda directament en la base de dades.

$ mysql -u root -p
mysql> use blog
mysql> select option_name from wp_options;
mysql> select option_name,option_value from wp_options where option_name='home';
mysql> select option_name,option_value from wp_options where option_name='siteurl';

Puc modificar directament aquests valors. Per fer-ho còmode, he de crear un script i un accés directe al script en l'escriptori amb la connexió al mysql, execució de les dues comandes, i desconnexió.

Per treballar localment, fitxer wp_local.sql:

update wp_options set option_value='http://localhost/blog' where option_name='home';
update wp_options set option_value='http://localhost/blog' where option_name='siteurl';

i per treballar remotament, fitxer wp_remot.sql:

update wp_options set option_value='http://wikijoan.dyndns.org/blog' where option_name='home';
update wp_options set option_value='http://wikijoan.dyndns.org/blog' where option_name='siteurl';

El problema és que quan treballi localment ningú es podrà connectar remotament, i un blog té per finalitat que tothom s'hi pugui connectar!

Automatitzem aquesta tasca mitjançant dos scripts php que s'executaran a http://localhost o http://www.empresalibre.org o http://wikijoan.dyndns.org.

fitxer blog_local.php:

<?php
exec("mysql -u root -p**** blog < /home/joan/copia_seguretat/scripts/wp_local.sql");                                      
echo "el blog funciona en local";                    
?> 

fitxer blog_remot.php:

<?php
exec("mysql -u root -p**** blog < /home/joan/copia_seguretat/scripts/wp_remot.sql");                                      
echo "el blog funciona en remot";                    
?> 

i els scripts són els que hem vist més amunt

Nota: Després de diversos canvis, ara ja puc accedir al blog remotament mitjançant http://blog.empresalibre.org. Això implica un canvi en les comandes que s'executen en el fitxer wp_remot.sql:

update wp_options set option_value='http://blog.empresalibre.org' where option_name='home';
update wp_options set option_value='http://blog.empresalibre.org' where option_name='siteurl';

Problema en les imatges

El problema està en què quan faig un upload d'una imatge (continguda en un post) en local o en remot, es queda emmagatzemada la referència absoluta de la imatge. La conseqüència és que si faig el upload en local, no es veu en remot. I a l'inversa. La solució és integrar en els scripts wp_remot.sql, wp_130.sql i wp_local.sql les següents instruccions:

update wp_posts set post_content=REPLACE(post_content, 'http://192.168.1.130/blog/wp-content/uploads', 'http://www.empresalibre.org/blog/wp-content/uploads'); 
# update wp_posts set post_content=REPLACE(post_content, 'http://www.empresalibre.org/blog/wp-content/uploads', 'http://192.168.1.130/blog/wp-content/uploads'); 
# update wp_posts set post_content=REPLACE(post_content, 'http://www.empresalibre.org/blog/wp-content/uploads', 'http://localhost/blog/wp-content/uploads'); 
update wp_posts set post_content=REPLACE(post_content, 'http://blog.empresalibre.org/wp-content/uploads', 'http://192.168.1.130/blog/wp-content/uploads'); 
update wp_posts set post_content=REPLACE(post_content, 'http://blog.empresalibre.org/wp-content/uploads', 'http://localhost/blog/wp-content/uploads'); 

creat per Joan Quintana Compte, gener 2009

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines