Tengo un complemento y me gustaría poder ejecutar el contenido de la publicación a través de algunos filtros antes de guardarlo en la base de datos. Al mirar la api del complemento , veo que dos ganchos que parecen ser útiles:
save_post
wp_insert_post
El único problema es que parece save_postque no necesita devolver una variable, por lo que no sé cómo filtrar el contenido y wp_insert_postparece documentado.
Me gustaría hacer algo como esto:
add_action('whatever_hook_name','my_function');
function my_function($post_content){
return $post_content.' <br> This post was saved on '.time();
}
Voy a hacer algo más útil que agregar una marca de tiempo, es decir, ejecutar algunos filtros de expresiones regulares, pero este es el tipo general de filtro / acción que estoy tratando de agregar.
Actualizar
Tenga en cuenta que quiero interceptar los datos para guardarlos en la base de datos, no cuando se muestran en la publicación (por ejemplo: no agregando un filtro a the_content)

This post was..." s 2. datos como este debe almacenarse como un metavalor de la publicación :-) BTW:save_postse llama después de guardar los datos, por lo tanto, después fue guardado en la base de datos (no es lo que quieres).Respuestas:
El filtro wp_insert_post_data puede hacer eso:
fuente
add_actionlugar deadd_filter. también tuwpse35931_filter_post_datayfilter_handlereres incongruente ...wp_insert_post_datafunciona, pero está un poco abrumado por lo que OP (y quizás otros) quieren lograr. Una opción más simple en esta situación es lacontent_save_prerecomendada por @drzaus.wp_insert_post_dataUse el filtro
content_save_preexactamente igualthe_content: la diferencia es que funciona cuando se guarda una publicación, en lugar de mostrarse.http://codex.wordpress.org/Plugin_API/Filter_Reference/content_save_pre
fuente
También puedes verificar el gancho
pre_post_updatefuente
Agregue el código siguiente para el tema activo para reemplazar
<shell>con[shell]antes de guardar:fuente
Si solo desea agregar algo similar al final de todas las publicaciones, le sugiero que use el
the_contentfiltro.fuente