web-dev-qa-db-fra.com

A quoi sert $ object-> filter?

Je continue à voir ce modèle et je me demande à quoi il sert, comment WP l'utilise en interne:

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 ligne spécifique en question est is_object($post) && empty($post->filter). J'ai vu cette propriété filter associée à d'autres objets. Vous vous demandez ce qu'il fait et comment il peut être utilisé?

MODIFIER

J'espère avoir plus d'informations à ce sujet! Malheureusement, une recherche Google avec "filtre" ne fait qu'activer les crochets de filtre, etc. C'est une tâche difficile pour obtenir des informations indépendantes. Buehler?

7
Tom Auger

Le filtre $ post-> contient le contexte dans lequel le contenu de la publication a été filtré. Le contexte pourrait être quelque chose comme "affichage" indiquant que l'article est censé être affiché sur la page.

Ceci est fait par les fonctions de désinfection, pour indiquer dans quel contexte les données de post ont été désinfectées. Différents contextes entraînent différents types d'assainissement. "brut", par exemple, correspond à des données non normalisées. "display" est probablement passé par la fonction esc_html, ou ce qui est pertinent pour ce contexte. La fonction sanitize_post () l'utilise pour vérifier les assainissements préexistants, afin d'éviter les doubles échappements, etc.

Une autre utilisation du filtre $ post-> est dans la fonction get_sample_permalink (). Vous constaterez qu'il définit le $post->filter = 'sample' avant d'appeler get_permalink (). L'utilisation de "exemple" indique ici à la fonction get_permalink, et à coder en dessous, que cet appel a pour but de créer un exemple de lien permanent pour affichage sur l'écran de publication. Cela va changer la façon dont certaines des fonctions ci-dessous fonctionnent.

5
Otto

@ Shaan: Je ne pense pas que Tom recherchait une description de l'API de plug-in WP. Il cherche une description de la propriété d'objet filter que vous obtenez à la suite de WP_Query. Par exemple, si vous utilisez get_posts():

stdClass Object
(
    // other post properties
    [filter] => raw
)

Je ne sais pas si et où cette propriété est utilisée dans WordPress. Après avoir regardé dans le code source, je pense que cela n’est utilisé nulle part pour le moment.

Je ne fais que spéculer ici. La valeur par défaut est raw pour toutes les publications à ce jour. Il se peut que les principaux développeurs souhaitent ajouter un filtrage par base de publication. Par exemple, si vous souhaitez autoriser uniquement certains éléments HTML dans le contenu du message, vous pouvez créer un filtre sanitizeHtml, le joindre au message et WordPress fera le reste à votre place.

1
rofflox