¿Es posible regenerar las babosas mediante programación después de cambiar los títulos de la publicación? Se actualizaron numerosos títulos de publicaciones y la babosa no se actualizó con el título, así que necesito regenerar todas estas babosas.
14
Respuestas:
Sí, es posible.
Código de muestra, debe ser probado y refinado:
Acabo de inventar esto, probablemente hay algunos errores y casos egde, pero debería darte una idea. Además, esto puede llevar un tiempo, por lo que podría ser útil dividir la actualización en fragmentos más pequeños.
fuente
post_name
argumento es ignorado porwp_update_post
, al menos en la versión 3.9 del núcleopost_name
se ignora dentro de lawp_update_post()
función, pero se tiene en cuenta cuando la publicación de actualización llama a lawp_insert_post()
función: esto significa que pasar el nuevo slug a la actualización dará como resultado un cambio efectivo para que la publicación se actualice.Este complemento también hace el trabajo: http://www.jerrytravis.com/598/wordpress-plugin-to-generate-post-slugs
Sin embargo, como solo lo hace para publicaciones que aún no tienen una babosa, si necesita regenerar las babosas edite la siguiente línea en el complemento:
if ($post->post_name == "") {
por ejemplo, puede cambiarlo a:
if (true) {
fuente
Estaba probando el método sugerido por Toscho, que es el "instintivo", pero en muchos casos no funciona (vea el código central para entender lo que quiero decir con "muchos casos").
Mirando el código, encontré el
wp_insert_post_data
gancho de filtro, llamado por lawp_update_post
función justo antes de insertar el mensaje en la base de datos.Al llamar a este filtro y cambiar el valor de
$data['post_name']
, pude hacer que esto funcione correctamente. Wordpress es genial pero está tan mal documentado ...Edité la documentación , para que más personas puedan encontrar esta solución si es necesario.
fuente
puede hacerlo directamente en mysql si lo necesita. (nuestro sitio de woocommerce tiene cientos de miles de productos):
donde post_type = 'producto': eso mantendrá su actualización solo para productos de comercio electrónico; debe averiguar qué límites desea mantener en esta consulta.
fuente