WordPress… y si te documentas?

Cada vez que veo el DER de wordpress, me agarra un ataque de nervios… en serio guardas en la misma tabla las imagenes y las publicaciones?

En serio no tenes por defecto un metodo para subir multiples imagenes a la base de datos escaneando una carpeta en particular? en serio necesito un plugin para eso?

Donde, en toda tu documentacion, esta el diccionario de datos? porque aca, que parece ser la documentacion oficial, no me dice que hay en cada campo.

Entonces para hacer cosas triviales, obviamente tenes que abrir la base de datos, y adivinar que hay que hacer con cada campo.

Yo estoy migrando un sitio a otro sitio, pero no directamente, si no el contenido. Y esto, gente, es un laburo de negros. No hay una forma simple de hacerlo… o si, pero obviamente, no esta bien documentada…

Algo me dice que es para cobrarte por eso, pero bueno, no vamos a sacarle el trabajo a nadie.. o si?

Para empezar.. veamos algunas querys que me vienen sacando del paso

select id, post_title, post_date 
from `wp_posts` WHERE post_status = 'publish' and post_type = 'post' and year(post_date) = 2018 and month(post_date) > 4  
order by post_date 

Notese que en la tabla que se llama post, tengo que aclarar el tipo de fila que quiero (si, quiero un post) y tambien tengo que aclarar el estado (otra genialidad, para algo inventaron las tablas historicas, para que las tablas usuales no sean tan pesadas)…

Para encontrar como se relaciona una categoria con un post, uso

SELECT * FROM `wp_term_relationships` 
where object_id in (select id from wp_posts where post_title = 'XXXX')

Para averiguar todos las filas para la misma publicacion

SELECT * 
FROM `wp_posts` 
WHERE post_title like '%XXXX%' order by post_date

pero resulta que esto no es tan exacto, porque dos publicaciones pueden tener el mismo link.. y entonces se muestran una abajo de otra…

para verlas, uso

SELECT * 
FROM `wp_posts` 
where post_name like 'xxxx' 
ORDER BY post_date

para ver todas las filas que son revisiones de estas, usar

SELECT * 
FROM `wp_posts` 
WHERE post_parent in (SELECT id FROM `wp_posts` where post_name like 'xxxx' ) 
and post_type in ('revision')

Para ver todas las categorias de una publicación en una fila, uso lo siguiente:

SELECT post_title, GROUP_CONCAT(name)
FROM `wp_term_relationships` r 
left join wp_terms t on r.term_taxonomy_id = t.term_id 
LEFT join wp_posts p on r.object_id = p.ID
WHERE object_id in (select id from wp_posts where year(post_date) = 2018 and month(post_date) = 5)
   and p.post_status = 'publish'
   and p.post_type = 'post'
GROUP by post_title
order by post_date

Para actualizar categorias en masa, uso lo siguiente:

insert into wp_term_relationships (object_id,term_taxonomy_id)
select id,1
from wp_posts p
where id not in (select object_id from wp_term_relationships) 
	and year(post_date) = 2018
    and month(post_date) = 6
    and p.post_status = 'publish'
   	and p.post_type = 'post'

No Comments, Be The First!

Your email address will not be published.