Cómo anular la selección de una categoría de forma masiva para publicaciones sin complemento
Publicado: 2020-10-05"Categoría" es una taxonomía predeterminada en WordPress. Los operadores pueden usar categorías para ordenar y agrupar publicaciones de blog en diferentes secciones. Las categorías también ayudan a los visitantes a navegar por los sitios más rápido, además de saber de qué temas tratan sus sitios web. Un operador de sitio web puede implementar operaciones básicas con categorías y publicaciones con paneles de administración de WordPress, así como usar complementos de WordPress para manipular publicaciones de diferentes maneras.
- 1. ¿Comprender cómo gestiona WordPress las solicitudes web de los clientes?
- 2. Tablas importantes para la manipulación masiva de publicaciones de WordPress
- 3. Mover todas las publicaciones de una categoría a otra categoría mediante comandos SQL
- 3.1. Obtenga una lista de identificación de todas las publicaciones que pertenecen a una categoría específica
- 3.2. Obtenga un ID de la nueva categoría
- 3.3. Actualizar las publicaciones con listas de ID dadas
- 4. Últimas palabras
Sin embargo, el uso excesivo de complementos para sitios de WordPress no debería ser una opción, ya que probablemente cause problemas potenciales de rendimiento y seguridad. En este artículo, aprendamos cómo deseleccionar de forma masiva una categoría para publicaciones sin usar complementos .
¿Comprender cómo gestiona WordPress las solicitudes web de los clientes?
Comprender cómo un servidor web maneja una solicitud de un cliente es necesario para manipular el sitio de WordPress. Las operaciones detalladas incluyen anular la selección de publicaciones masivas en una categoría.
El servidor web típico es la pila LAMP (Linux - Apache - MySQL / MariaDB - PHP). Se pueden encontrar otros conceptos equivalentes en otras plataformas de servidor web.

LAMP apila la comunicación servidor-cliente
1. El cliente envía solicitudes HTTP para solicitar datos web del servidor web.
2. El servidor web recibe solicitudes HTTP válidas de los clientes (después de pasar las reglas del firewall):
- Analizar la estructura de las solicitudes HTTP, identificar exactamente qué páginas HTML necesitan los clientes;
- Analizando las solicitudes a las capas de secuencias de comandos (PHP).
3. Las capas de secuencias de comandos PHP:
- Consultar a la base de datos, obtener toda la información necesaria;
- Combine con el código fuente en los temas para representar páginas web dinámicas;
- Regrese al servidor web.
4. El servidor web:
- Construya mensajes de respuesta HTTP.
- Envíe mensajes de respuesta HTTP a los clientes.
5. El cliente recibe mensajes de respuesta HTTP del servidor web y luego muestra los datos web en sus navegadores web.
Tablas importantes para la manipulación masiva de publicaciones de WordPress
Hay un paquete de tablas en el esquema de la base de datos de los sitios de WordPress. Los esquemas varían de un sitio a otro. Sin embargo, al manipular publicaciones del sitio de WordPress, estas tablas deberían ser objeto de mayor preocupación:
| Nombre de la tabla | Descripciones |
wp_postmeta | Almacene datos adicionales relacionados con el contenido de un sitio de WordPress. |
wp_post | Almacene todos los datos importantes relacionados con el contenido de un sitio de WordPress. |
wp_term_relationships | Almacene todos los datos de conjunción que conectan publicaciones a categorías, etiquetas, enlaces. La información de esta tabla actúa como un mapa entre los términos objetos y los términos. |
wp_term_taxonomy | Almacene datos adicionales para wp_terms tablas wp_terms . |
wp_term | Almacene categorías, etiquetas para publicaciones, páginas y enlaces. |
Mover todas las publicaciones de una categoría a otra categoría mediante comandos SQL
Para manipular la base de datos de WordPress directamente, los operadores deben decidir qué DBMS (sistema de gestión de bases de datos) utilizar. Debido a que el entorno de laboratorio usa la pila LAMP como plataforma web, los operadores pueden trabajar con bases de datos de WordPress usando phpMyAdmin, complementos de WordPress, incluso cliente MySQL (comando de terminal) a través de sesiones SSH ... En este escenario, el DBMS es MySQL WorkBench para un mejor propósito de ilustración.
Antes de implementar cualquier cambio en las bases de datos de WordPress, es recomendable tener una copia de seguridad completa del sitio de WordPress. Esta copia de seguridad completa incluye el código fuente de WordPress (temas, archivos PHP…) y la estructura de la base de datos. Para fines ideales, los operadores pueden crear una copia de seguridad completa de todo el host que ejecuta el sitio de WordPress.

Aquí están los scripts SQL completos para mover todas las publicaciones de la categoría "Sin categoría" a la categoría "Inspiraciones".
SET @listID = (
SELECCIONAR GROUP_CONCAT (ID) FROM wp_posts
DONDE post_type = "post"
Y post_status = "publicar"
Y ID EN (
SELECCIONE object_id FROM wp_term_relationships
DONDE term_taxonomy_id IN (
SELECCIONE term_taxonomy_id FROM wp_term_taxonomy
DONDE taxonomía = "categoría"
Y term_id IN (
SELECCIONE t.term_id FROM wp_terms t
DONDE t.name = "Sin categoría"
)
)
)
);
SET @newCategoryID = (
SELECCIONE t.term_id DE wp_terms t DONDE t.name = 'Inspiraciones'
);
SELECCIONAR @newCategoryID;
establecer @sqlCmd = CONCAT (
'ACTUALIZAR wp_term_relationships tr',
'SET tr.term_taxonomy_id =', @newCategoryID, '',
'DONDE tr.object_id IN (', @listID, ');'
);
SELECCIONAR @sqlCmd;
PREPARAR stmt DE @sqlCmd;
SET SQL_SAFE_UPDATES = 0;
EJECUTAR stmt;
SET SQL_SAFE_UPDATES = 1;
DEALLOCATE PREPARE stmt;El guión detallado se explicará a continuación.
Obtenga una lista de identificación de todas las publicaciones que pertenecen a una categoría específica
En esta demostración, demostraremos cómo deseleccionar de forma masiva todas las publicaciones de la categoría "Sin categoría" y luego moverlas a una nueva categoría llamada "Inspiraciones".
Desde el panel de administración de WordPress, estas 3 publicaciones se ordenan en la categoría "Sin categoría".

Los siguientes comandos SQL recuperarán el ID de todas las publicaciones de una categoría denominada "Sin categoría".
SET @listID = (
SELECCIONAR GROUP_CONCAT (ID) FROM wp_posts
DONDE post_type = "post"
Y post_status = "publicar"
Y ID EN (
SELECCIONE object_id FROM wp_term_relationships
DONDE term_taxonomy_id IN (
SELECCIONE term_taxonomy_id FROM wp_term_taxonomy
DONDE taxonomía = "categoría"
Y term_id IN (
SELECCIONE t.term_id FROM wp_terms t
DONDE t.name = "Sin categoría"
)
)
)
); Verifique el valor de @listID :

Obtenga un ID de la nueva categoría
SET @newCategoryID = (
SELECCIONE t.term_id DE wp_terms t DONDE t.name = 'Inspiraciones'
); Verifique el valor de @newCategoryID :

Actualizar las publicaciones con listas de ID dadas
Primero, @sqlCmd un comando SQL y guárdelo en una variable @sqlCmd .
/ * Comando esperado almacenado en la variable @sqlCmd:
ACTUALIZAR wp_term_relationships tr
SET tr.term_taxonomy_id = 5
DONDE tr.object_id IN (131,132,133);
* /
establecer @sqlCmd = CONCAT (
'ACTUALIZAR wp_term_relationships tr',
'SET tr.term_taxonomy_id =', @newCategoryID, '',
'DONDE tr.object_id IN (', @listID, ');'
);En segundo lugar, verifíquelo:

Finalmente, emita los comandos SQL almacenados en la variable @sqlCmd con las siguientes declaraciones:
PREPARAR stmt DE @sqlCmd; SET SQL_SAFE_UPDATES = 0; EJECUTAR stmt; SET SQL_SAFE_UPDATES = 1; DEALLOCATE PREPARE stmt;
Aquí está el resultado:

Ultimas palabras
Hay varias formas de deseleccionar de forma masiva una categoría para publicaciones en sitios de WordPress. Ya sea usando complementos para interactuar a través de una interfaz web o usando comandos SQL para tener un impacto directo en la base de datos de WordPress, los operadores deben comprender cuáles son los objetos esenciales que se están modificando.
Con suerte, este artículo le brinda una opción más para anular la selección masiva de una categoría para las publicaciones. Para obtener técnicas más útiles en WordPress, ¡sigamos nuestros próximos artículos!
Si desea utilizar un complemento para deseleccionar de forma masiva una categoría para publicaciones más fácilmente, consulte este artículo.
