Passage de wp_get_sites à get_sites

4

WordPress a récemment déprécié ses wp_get_sites () au profit de get_sites () dans la version 4.6. J'ai vu quelques mises à jour dans lesquelles les utilisateurs ajoutaient des modifications à leur code en le passant simplement de wp_get_sites () à get_sites (). Cependant, j'ai remarqué celui-ci aujourd'hui:

$sites = wp_get_sites();

foreach ( $sites as $site ) {
...

à

$sites = ( function_exists( 'get_sites' ) ) ? get_sites() : wp_get_sites();

foreach ( $sites as $site ) {
$site = (array) $site;
...

Qu'est-ce que ce changement fait et pourquoi serait-il utile de supprimer wp_ de l'ancienne fonction pour utiliser la nouvelle? Comment ça marche?

Où puis-je en savoir plus sur l'utilisation de la version abrégée, qui vérifie la fonction et propose un repli sur une seule ligne? Y a-t-il un nom pour cela?

    
posée Morgan 02.09.2016 - 16:31

1 réponse

5

C'est une excellente question.

Tout d'abord, l'opérateur de comparaison (? :) auquel vous faites référence est appelé un opérateur ternaire . C'est génial pour des blocs simples si / alors. Il m'a fallu un certain temps pour m'y habituer, mais maintenant je les utilise tout le temps.

Vous pouvez prendre une expression simple et renvoyer une valeur en fonction du résultat de cette expression.

Ceci placera la valeur désinfectée de $_GET['string'] dans la variable si elle existe et une chaîne vide si ce n'est pas le cas.

$query_string = isset($_GET['string']) ? sanitize_text_field($_GET['string']) : '';

Vous pouvez également y revenir directement

echo $name != '' && isset($name) ? "Hello, " . $name : "I don't believe we've met"

Ou mettez-le dans un tableau ... et avec des booléens!

$my_array = array(
    'is_gt_5' => $this_number > 5 ? true : false
);

Pourquoi les utiliser ici?

Si quelqu'un peut utiliser une solution de repli, c'est que tout le monde n'est pas encore à la version 4.6. L’écrire de cette façon permet de conserver la version antérieure et de prendre en charge la compatibilité future.

    
réponse donnée Jeremy Ross 02.09.2016 - 16:45

Lire d'autres questions sur les étiquettes