Alternando wp_get_sites para get_sites

4

O WordPress desvalorizou recentemente wp_get_sites () em favor de get_sites () na versão 4.6. Eu vi algumas atualizações em que as pessoas estão fazendo alterações em seus códigos simplesmente mudando de wp_get_sites () para get_sites (). No entanto, notei isso hoje:

$sites = wp_get_sites();

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

para

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

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

O que essa mudança faz e por que seria útil remover Wp_ da função antiga para usar a nova? Como isso funciona?

Onde posso aprender mais sobre como usar a versão abreviada, onde ela verifica a função e tem um fallback em uma única linha? Existe um nome para isso?

    
por Morgan 02.09.2016 / 16:31

1 resposta

5

Esta é uma ótima pergunta.

Primeiro de tudo, o operador de comparação (? :) que você está se referindo é chamado de operador ternário . É ótimo para blocos simples se / então. Levei um tempo para me acostumar com eles, mas agora eu os uso o tempo todo.

Você pode obter uma expressão simples e retornar um valor, dependendo do resultado dessa expressão.

Isso colocará o valor higienizado de $_GET['string'] na variável, se existir, e uma string vazia, se não existir.

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

Você também pode fazer eco disso diretamente

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

Ou coloque em uma matriz ... e com booleanos!

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

Por que usá-los aqui?

A razão pela qual alguém pode usar um substituto é porque nem todos estão no 4.6 ainda. Escrevê-lo desta forma ajuda a manter e suportar compatibilidade futura.

    
por Jeremy Ross 02.09.2016 / 16:45

Tags