Как выбрать способ получения данных WordPress? - PullRequest
0 голосов
/ 24 июня 2019

Изучая WordPress, я понял, что существует так много способов получения данных.

Например, чтобы получить почтовый идентификатор на single.php, по крайней мере, вы можете использовать следующие 3 способа.

-1.Используйте функцию get_the_ID

$my_id1 = get_the_ID();

-2.Использовать глобальную переменную $ post

$my_id2 = $post->ID;

-3.Используйте функцию get_post и ее Object

$my_id3 = get_post();
$my_id3 = $my_id3->ID;

Я не знаю, что было бы лучше практиковать.Есть ли какая-то причина выбирать одну над другой?

1 Ответ

1 голос
/ 24 июня 2019

TLDR;

Если имеется вспомогательная функция, которая возвращает нужные вам данные, большую часть времени вы захотите использовать эту функцию вместо доступа к свойствам / методам объектовнепосредственно, чтобы уменьшить вероятность ошибок / ошибок в будущем.


В общем, любой способ должен быть в порядке, так как маловероятно, что WordPress внесет радикальные изменения в свои существующие объекты, классы и API, таквы можете ожидать, что, следуя примерам из вашего вопроса, объекту $post наверняка будет присвоен атрибут ID, который вы можете использовать в своем коде.

С учетом сказанного, используя вспомогательные функцииэто верный способ получить ожидаемые данные в том формате, в котором вы ожидаете, независимо от того, будет ли WordPress внутренне вносить изменения в свои классы / объекты / API или нет.

Вот крайний пример:

Представьте, что кому-то в WordPress стало скучно, и он решил переименовать атрибут ID объекта $post в item_ID.Если вы используете функцию get_the_ID() в своем коде, вы точно знаете, что независимо от того, что эта функция возвратит целое число, все будет хорошо, потому что эта функция должна быть обновлена ​​командой WordPress, поэтому она возвращаетзначение item_ID вместо ID.

Это, с другой стороны:

$my_id2 = $post->ID; // The ID attribute no longer exists, now it's called item_ID!

... вызовет ошибку, так как ID больше не существует в этом сценариинарушая ваш код (помните, это крайний пример, в котором предполагается, что атрибут ID был переименован в item_ID.)

Опять же, это маловероятный сценарий.Такие большие фреймворки, как WordPress, обычно избегают внесения подобных изменений в существующие API / функции / объекты, если только для этого нет очень веской причины, и в таком сценарии они обычно дают нам понять разработчикаммы можем соответствующим образом изменить наш код.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...