Pregunta:
Sigo viendo este patrón y me pregunto para qué sirve, cómo lo usa WP internamente:
if ( empty($post) ) {
if ( isset($GLOBALS['post']) )
$_post = & $GLOBALS['post'];
else
return $null;
} elseif ( is_object($post) && empty($post->filter) ) {
_get_post_ancestors($post);
$_post = sanitize_post($post, 'raw');
wp_cache_add($post->ID, $_post, 'posts');
} else {
if ( is_object($post) )
$post_id = $post->ID;
else
$post_id = $post;
La línea específica en cuestión es is_object($post) && empty($post->filter)
. También he visto esta propiedad de filter
asociada con otros objetos. ¿Se pregunta qué hace y cómo se puede utilizar?
EDITAR
¡Espero recibir más información sobre esto! Desafortunadamente, una búsqueda en Google con "filtro" solo muestra ganchos de filtro, etc. Es difícil obtener información independiente. Buehler?
Respuesta:
El filtro $ post-> contiene el contexto bajo el cual se han filtrado los contenidos de la publicación. El contexto podría ser algo así como "pantalla", lo que indica que la publicación está destinada a mostrarse en la página.
Esto se realiza mediante las funciones de desinfección, para indicar en qué contexto se desinfectaron los datos de la publicación. Los diferentes contextos obtienen diferentes tipos de desinfección. "sin procesar", por ejemplo, son datos no esterilizados. "display" probablemente haya pasado por la función esc_html, o lo que sea relevante para ese contexto. La función sanitize_post () usa esto para verificar si hay desinfecciones preexistentes, para evitar que las cosas se escapen y así sucesivamente.
Otro uso del filtro $ post-> está en la función get_sample_permalink (). Verá que establece $post->filter = 'sample'
antes de llamar a get_permalink (). El uso de "muestra" aquí indica a la función get_permalink, y al código debajo de ella, que el propósito de esta llamada es crear un enlace permanente de muestra para mostrarlo en la pantalla de publicación de edición. Esto cambiará la forma en que funcionan algunas de las funciones siguientes.