У нас есть шаблоны тегов и некоторые функции, которые начинаются с get. Иногда было бы просто приятно в темах сделать так:
$title = the_title();
использовать HTML позже. Это просто упрощенный пример, естественно, есть какая-то функция вроде get_the_title (); Но это работает только для этой функции.
Мне интересно, почему нет такой функции, как эта:
function get_output() {
$args = func_get_args();
$callback = array_shift($args);
ob_start();
call_user_func_array($callback, $args);
return ob_get_clean();
}
Это может преобразовать любую функцию, которая имеет выход, в возвращающую функцию:
$title = get_output('the_title');
Есть идеи, почему об этом никогда не думали? Каждый автор темы или хакер может использовать это, верно?
В прямом ответе на вопрос, WordPress не включает функцию для этого частично, потому что это не относится конкретно к функциональности WordPress. То есть это PHP (потенциальная) проблема, а не WordPress.
Кроме того, я бы не сказал, что WordPress обязан предоставлять обходные пути для плагинов и т.д., Которые не предоставляют функцию для возврата данных (что противоречит общему стилю WordPress).
Я бы сказал, что get_posts
- это WP ответ на ваш запрос. Теги шаблонов были созданы для использования в The Loop, но для любого WP '' хакера 'достаточно просто использовать вместо него get_posts () и назначить, например: $ post-> post_title переменной. Поначалу неприятно перестать полагаться на The Loop, но достаточно легко пройти мимо.
Как это может быть проще для некоторых разработчиков тем, вы должны воспринимать это так, как это делается. Но вы можете написать функцию самостоятельно:
function get_output($function){
return call_user_func('get_'.$function);
}
Написание get_the_title () также короче, чем написание get_output ('the_title') :)