Se pueden deshabilitar la API XML-RPC de WordPress añadiendo la siguiente línea al archivo functions.php del theme activo o vía plugin:
add_filter('xmlrpc_enabled', '__return_false');
Visto en este artículo de wpbeginner.com.
En WordPress previous_post_link()
y next_post_link()
permiten enlazar, en la plantilla de una entrada, la anterior y la siguiente entrada respectivamente. Estas entradas vienen definidas por unos parámetros por omisión que definen una petición a la base de datos que hace la función get_adjacent_post()
. Estos parámetros definen que el criterio para seleccionar la entrada anterior y posterior sea la fecha de publicación.
Afortunadamente get_adjacent_post() dispone de tres hooks donde añadir filtros para modificar los parámetros de la petición a la base de datos para modificar las entradas previa y siguiente: get_{$adjacent}_post_join
, get_{$adjacent}_post_sort
y get_{$adjacent}_post_where
. $adjacent
puede tomar los valores previous y next.
Escribo a continuación el código necesario para cambiar el criterio para obtener la entrada previa y siguiente en base a un campo (custom field) numérico que haya servido para ordenar ascendentemente las entradas en la plantilla de archivo.
La gestión de los comentarios en un wordpress que ya no está muy activo, que se queda sin moderación, puede llevar un buen rato si no se toman las medidas para prevenir que nuestra base de datos crezca desmesuradamente a causa de los comentarios spam o los que se quedan en espera de ser aprobados, que casi en su totalidad serán spam también.
Hace un tiempo publiqué cómo borrar masivamente comentarios de la base de datos usando wp-cli. Si no se tiene más remedio, es una buena manera de adelgazar la base de datos. Aunque siempre es mejor atajar el problema antes de que se produzca. Para ello se pueden tomar dos medidas: cerrar los comentarios para las nuevas publicaciones y también para todas las que se publicaron en el pasado.
Habilitar la subida de archivos SVG al gestor de medios de WordPress es tan fácil como añadir cinco líneas de código al theme o plugin que se esté desarrollando. Sin embargo, verificar que el SVG que se está subiendo es seguro es algo más complicado: hay que analizar el código XML que conforma el archivo SVG en busca de código malicioso que una vez en el servidor podría crear una vulnerabilidad. Por esta razón es una buena idea usar el plugin Safe SVG, desarrollado y mantenido por la empresa 10up, que comprueba los archivos antes de añadirlos al gestor de medios usando la biblioteca SVG-sanitizer. Este plugin además optimiza los archivo SVG usando la biblioteca svgo.
Se pueden deshabilitar la API XML-RPC de WordPress añadiendo la siguiente línea al archivo functions.php del theme activo o vía plugin:
add_filter('xmlrpc_enabled', '__return_false');
Visto en este artículo de wpbeginner.com.
El nombre de usuario en WordPress está protegido por diseño, de manera que no se puede cambiar desde el panel de administración ni usando las funciones PHP para actualizar los datos de un usuario. La orden wp user update de WP-CLI tampoco permite cambiar el username. Esta protección tiene su lógica, pero hay veces que necesitamos cambiar algún username. Una manera de hacerlo es modificándolo directamente en base de datos.
Con WP-CLI podemos lanzar una query a la base de datos para cambiar el username:
wp db query "UPDATE wp_users u, ( SELECT COUNT(*) as number_of_same_login_users FROM wp_users u WHERE user_login = 'mary_new' ) tmp SET u.user_login = 'mary_new' WHERE u.user_login = 'mary_old' AND tmp.number_of_same_login_users = 0"
En una línea:
wp db query "UPDATE wp_users u, ( SELECT COUNT(*) as number_of_same_login_users FROM wp_users WHERE user_login = 'mary_new' ) tmp SET u.user_login = 'mary_new' WHERE u.user_login = 'mary_old' AND tmp.number_of_same_login_users = 0"
Recientemente he sufrido ataques en algunas webs gestionadas con WordPress. Una de las consecuencias es que cientos de artículos sobre casinos en línea y juegos de azar son creados. Borrar estos contenidos desde el panel de administración puede llevar un buen rato. Con wp-cli se puede hacer con un comando.
Normalmente estas infecciones crean los contenidos automáticamente y de una vez, así que la fecha es la misma para todos los contenidos. Podemos por tanto obtener un listado de entradas filtrado por fecha y luego borrarlas. Algo así:
wp post delete $(wp post list --year=2022 --month=06 --day=01 --format=ids) --force
wp-cli es una interfaz de línea de comandos para WordPress. Permite hacer multitud de operaciones de administración y mantenimiento de una instalación de WordPress. Por un lado agiliza estas operaciones y por otro permite automatizarlas, ejecutándolas en modo no interactivo usando cron y un script de bash por ejemplo.
Aquí recojo cómo llevar a cabo tareas básicas con WordPress usando wp-cli. Para cualquier otro uso se puede consultar la documentación oficial de wp-cli.