Intereting Posts
Как изменить wp.media для получения и отображения нескольких изображений Какая функция изменяет временную метку сообщения? Как я могу перенаправить мобильных пользователей на diff url, но также позволить им вернуться на полный сайт Помощь с обратным вызовом с помощью do_action_ref_array Использование Bootstrap nav на странице Проблема пользователей (мульти-автор плюс многопользовательская) Как получить, в сценарии страницы WP, скрипт wp enqueued (в Functions.php)? Я хочу получить номер версии плагина Динамически Добавить классы по умолчанию wp_nav_menu в мои пользовательские ссылки Тагирование определенной ссылки меню с nav_menu_css_class Создать шаблон «автор» с помощью плагина Я должен отправить данные AJAX в wordpress на другой веб-сайт На странице категории больше не отображается кнопка загрузки больше Почему глобальные $ wp_query не подключаются? Статический просмотр страниц каждого пользовательского шаблона страницы

Захват user_id внутри функции

Я хочу создать одну простую функцию для захвата идентификатора пользователя в зависимости от того, на какой странице мы работаем в WP.

function wp_user_id( $user ) { if ( is_page_template( 'page-recipes.php' ) ) { $user = get_current_user_id(); elseif( is_singular() ) { $user = get_the_author_meta( 'ID' ); } else { $user = $user; } return $user; } 

Когда я на единственной странице и использую только wp_user_id () в своем коде, я получаю сообщение об ошибке Missing argument 1 for wp_user_id() то время как я хочу, чтобы он получил $user = get_the_author_meta( 'ID' );

Любые идеи о том, что я делаю неправильно?

Solutions Collecting From Web of "Захват user_id внутри функции"

Для работы вашей функции требуется входной аргумент $user .

Если вы просто wp_user_id() без каких-либо аргументов, он вернет ошибку.

Решение предоставляет $user значение по умолчанию, что делает аргумент опционным.

 function wp_user_id( $user = NULL ) { // Give $user a default value of NULL if ( empty($user) ) { // check if $user has a non-empty value if ( is_page_template( 'page-recipes.php' ) ) { $user = get_current_user_id(); } else if ( is_singular() ) { $user = get_the_author_meta( 'ID' ); } } return $user; } 

EDIT: Я просто понял, что ваш аргумент $user фактически бессмыслен в вашей примерной функции. Вы можете полностью удалить его.

 function wp_user_id() { if ( is_page_template( 'page-recipes.php' ) ) { $user = get_current_user_id(); } else if ( is_singular() ) { $user = get_the_author_meta( 'ID' ); } if ( isset($user) ) { // check if $user is set return $user; } }