Cosa è "all" in isset ($ wp_filter ['all'])


10

Sono un principiante in WordPress. Sto cercando di capire come genera le pagine XHTML. Immagino sia la funzione di do_action( 'hook-name' ), ma sono bloccato con la comprensione dell'istruzione isset( $wp_filter['all] )durante la lettura della funzione do_action perché non capisco quale sia il significato della parola all.

È una funzionalità PHP o WordPress?

Risposte:


9

allè solo una stringa scelta dagli sviluppatori di WordPress per comportarsi in modo diverso rispetto a qualsiasi altro hook. Quando ti connetti a all, il callback si attiva per tutti gli altri hook .

Non passerei troppo tempo a guardare la fonte di do_action, so solo che:

  1. add_action( 'x', 'whatever' )significherà whateverfuochi perdo_action( 'x' )
  2. add_action( 'all', 'whatever' )significherà whateverfuochi per tutti do_action , indipendentemente dal nome del gancio.

5

Condizionale if ( isset($wp_filter['all']) ) {puoi trovare proprio in queste funzioni di creazione hook:

  • apply_filters
  • apply_filters_ref_array
  • do_action
  • do_action_ref_array

La differenza tra questi è nel numero di argomenti inviati. O abbiamo bisogno di più argomenti, quindi ref_arrayo singolo argomento. L'altra differenza "azione vs. filtro" è semplice, l'azione può svolgere qualsiasi funzione / azione e il nome del filtro è in genere riservato alle funzioni che accettano dati stringa e restituiscono tali dati filtrati.

OK, ecco come si creano gli hook. E gli hook hanno nomi e puoi pescare più nomi di funzioni sullo stesso hook (leggi: tag).

inserisci qui la descrizione dell'immagine

Ma una volta definite tutte le funzioni associate a hook specifici, è necessario memorizzare da qualche parte tutti i nomi hook e nomi funzione associati. Questo è il motivo per cui abbiamo il global $wp_filterWordPress. Se emetti quella variabile otterrai qualcosa come ...

Array
(
    [pre_term_name] => Array
        (
            [10] => Array
                (
                    [sanitize_text_field] => Array
                        (
                            [function] => sanitize_text_field
                            [accepted_args] => 1
                        )

                    [wp_filter_kses] => Array
                        (
                            [function] => wp_filter_kses
                            [accepted_args] => 1
                        )

                )

            [30] => Array
                (
                    [_wp_specialchars] => Array
                        (
                            [function] => _wp_specialchars
                            [accepted_args] => 1
                        )

                )

        )

Bene, non discutiamo sul nome di questa variabile. Personalmente, lo definirei diverso, probabilmente $wp_hookspoiché questo nome non è preso. Tuttavia, se torniamo alla storia, scopriremo che do_actionè da @since 1.2.0ed apply_filtersè @since 0.71(rilasciato il 9 giugno 2003.). Questo ti dà una buona spiegazione del perché si chiama $wp_filter. È molto probabile perché i filtri sono stati introdotti prima in WordPress. Successivamente hanno introdotto azioni.

Basandomi solo su quanto detto da @TheDeadMedic ...

add_action ('all', 'qualunque') significherà qualunque fuoco per ogni do_action, indipendentemente dal nome dell'hook.

Ho sollevato la domanda perché ne abbiamo bisogno $wp_filter['all']? Solo alcuni esempi. Introspezione, test e probabilmente altre funzionalità interne del sistema nelle future versioni di WordPress.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.