Я только что вошел в концепцию почтовых форматов и мне стало интересно, почему две из 3 функций из почтового формата «API» предлагают абсолютно одинаковую функциональность. Рассмотрим следующие две концепции (A и B):
if ( have_posts() )
{
while ( have_posts() )
{
the_post();
// A) has_post_format
if ( has_post_format('format') )
{
the_excerpt(); // some special formating
}
// VERSUS:
// B)
if ( get_post_format( $GLOBALS['post']->ID ) == 'format' )
{
the_excerpt(); // some special formating
}
} // endwhile;
} // endif;
Может кто-нибудь объяснить мне, почему эти две функции, а не только ex. get_post_format
? Если бы вы могли предложить мне несколько примеров ситуаций, когда одна не способна на что-то, что может сделать другая функция, я был бы особенно счастлив и получил +1.
источник
get_template_part
действительно умный!if ( ! has_post_format() ) {}
возвращает предупреждение (по крайней мере для 3.5-RC1), поскольку 1-й (обязательный) аргумент отсутствует. codex.wordpress.org/Function_Reference/has_post_formatСледующая часть не верна, я создал заявку, чтобы запросить это улучшение.
has_post_format()
является более гибким, потому что он опирается на тоhas_term()
, что опирается наis_object_in_term()
. Это означает, что вы можете передать массив форматов сообщений, и он вернется,true
если сообщения имеют один из этих форматов.В оригинальной спецификации уже упоминалось и то,get_post_format()
и другоеhas_post_format()
, возможно, потому что она основана на системе таксономии, которая также имеет обе функции?источник
is_object_in_term()
вместо этого функцию.has_post_format()
ожидает строку в качестве первого параметра. Массив не удастся.has_*
функциями - я создал билет для этого.Проще говоря, has_post_format () возвращает значение true / false (Boolean), которое полезно в операторах IF, а get_post_format () возвращает формат записи, если он существует, и, возможно, NULL или false, если его там нет. Использование логических значений - это хороший чистый способ убедиться, что ваши условия всегда ведут себя так, как вы ожидали, а функция has_post_format () допускает приятные короткие условия:
Кроме того, это просто соответствует другим существующим функциональным возможностям WordPress. В то время как ваш вариант B делает что-то, он требует немного больше специальных знаний, чем, возможно, знакомому пользователю WordPress с уровнем чуть выше среднего.
источник
get_adjacent_post
иnext_post_link
прочее.