Intereting Posts
Почему в этой теме WordPress я не вижу Главное меню? RecursiveDirectoryIterator не работает в admin Как я могу автоматически удалять комментарии, содержащие китайские / российские знаки? Подсайт с другим шаблоном и содержимым Какой виджет использовать для публикации в разделе категории? Значения запроса из репитера Post Object wp_set_object_terms () – предотвратить перезапись? Пользовательский Nav Walker, чтобы показать братьев и сестер и детей текущей ветви? Пользовательская иерархическая таксономия теряет иерархию интерфейса при выборе родительских и дочерних предоставить привилегию для ролей (например, редакторов) и выше Автоматическое добавление даты в автоматическую генерацию почтового пули Дублированные сообщения Удалить «родительский» выбор при добавлении / редактировании категорий? Упрощенный URL-адрес страницы w / запрос var перенаправляет на URL-адрес префинированной страницы без запроса var Нечувствительность к регистру add_rewrite_rules в функциях WordPress

Если функция существует, а массив встречается, функция эха?

У меня есть функция, подобная следующей:

<?php echo my_custom_function( array( 'category_url'=>'My Special Category' ) ); ?> 

Он извлекает данные из «Моя специальная категория» и отображает их. Я хочу поставить условное утверждение вокруг него, которое говорит, если и только если эта категория имеет материал для отображения, чтобы отобразить его. Существует более чем одна category_url, которая обертывает ее инструкцией if, и только с использованием my_custom_function не работает из-за массива, она выдает ошибку: «Missing Argument 1».

Любая идея о том, как сделать эту функцию только эхом, если она существует И если аргумент равен самому себе? PHP noob вопрос. 😉 Благодаря!!

Solutions Collecting From Web of "Если функция существует, а массив встречается, функция эха?"

Следующая функция показывает вам пример «лучшей практики»;)

Он включает обработку ошибок, проверку значений массива emtpy, анализ входных аргументов по умолчанию, забота о том, хотите ли вы эхо результата и т. Д. У вас даже есть фильтр для ваших дочерних тем по умолчанию. 🙂

Функция в файле functions.php:

 function wpse15886_check_cat( $args = array( 'cat_url', 'other_args_for_the_output', 'echo' => false ) ) { // Abort if no 'cat_url' argument was given if ( ! isset( $args['cat_url'] ) ) $error = __( 'You have to specify a category slug.' ); // check if the category exists $given_cat = get_category_by_slug( $args['cat_url'] ); if ( empty( $given_cat ) ) $error = sprintf( __( 'The category with the slug %1$s does not exist.' ), $args['cat_url'] ); // check if we got posts for the given category $the_posts = get_posts( array( 'category' => $args['cat_url'] ) ); if ( empty( $the_posts ) ) $error = __( 'No posts were found for the given category slug.' ); // error handling - generate the output $error_msg = new WP_Error( __FUNCTION__, $error ); if ( is_wp_error( $error_msg ) ) { ?> <div id="error-<?php echo $message->get_error_code(); ?>" class="error-notice"> <strong> <?php echo $message->get_error_message(); ?> </strong> </div> <?php // abort return; } // Set some defaults $defaults = array( 'key a' => 'val a' ,'key a' => 'val a' ,'key a' => 'val a' ); // filter defaults $defaults = apply_filters( 'filter_check_cats', $defaults ); // merge defaults with input arguments $args = wp_parse_args( $args, $defaults ); extract( $args, EXTR_SKIP ); // >>>> build the final function output $output = $the_posts; $output = __( 'Do what ever you need to do here.' ); $output = sprintf( __( 'Manipulating some of the parsed %1$s for example.' ), $args['other_args_for_the_output'] ); // <<<< end build output // just return the value for further modification if ( $args['echo'] === false ) return $output; return print $output; } 

Обратите внимание, что я не тестировал функцию, поэтому могут возникнуть некоторые ошибки и другие. Но ошибки приведут вас.

Usecase:

 $my_cats = array( 'cat_slug_a' ,'cat_slug_b' ,'cat_slug_c' ); if ( function_exists( 'wpse15886_check_cat' ) ) { foreach ( $my_cats as $cat ) { $my_cats_args = array( $cat ,'other_args_for_the_output' // this could also be another array set in here ,'echo' => true ); // trigger the function wpse15886_check_cat( $my_cats_args ); } }