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_post
que no necesita devolver una variable, por lo que no sé cómo filtrar el contenido y wp_insert_post
parece 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_post
se 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_action
lugar deadd_filter
. también tuwpse35931_filter_post_data
yfilter_handler
eres incongruente ...wp_insert_post_data
funciona, 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_pre
recomendada por @drzaus.wp_insert_post_data
Use el filtro
content_save_pre
exactamente 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_update
fuente
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_content
filtro.fuente