Intereting Posts
Ограничить количество пользователей, возвращаемых при сортировке пользователей по последним функциям сообщений Изменить URL-адрес сайта без разрыва ссылок или изображений? WP 3.3 Обрезка миниатюр с помощью add_image_size? У WordPress есть корзина для пользователей? (Неверный результат для count_user, больше, чем ожидалось) Загрузка JS / CSS короткого кода в сообщении Задайте значение настраиваемого поля при публикации или обновлении публикации wp_query не возвращает мой пользовательский пост Как заменить закодированный список пользовательских терминов таксономии на основе пользовательского запроса поля Media Manager: обновить библиотеку после нового выбора Вставляйте отдельные предметы CPT каждые x сообщений другого CPT Ошибка скорости страницы: «показывать масштабированные изображения» Получить пользовательские атрибуты Woocommerce (таксономии) Правильный способ использования поля Nonce без параметров API Разделите значения запятыми Почему мой скрипт плагина не загружается в бэкэнд?

Захват 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; } }