Определение ширины экрана в functions.php
Я ищу способ добавить A перед меню, если мы на десктопе, и добавить B, если на мобильном устройстве.
Вот мои функции для A и B:
add_action( 'wp_head', 'A_function' );
function A_function() {
// добавить A
}
add_filter( 'wp_nav_menu_items', 'B_function', 10, 2 );
function B_function() {
// добавить B
}
Я знаю, что нужно поместить эти хуки в файл functions.php, но не знаю как это сделать. Я знаю, что можно использовать wp_is_mobile()
.
Как этого добиться?

Согласно кодексу, wp_is_mobile();
— это булева функция, которая возвращает true, если пользователь заходит на сайт с мобильного устройства. Поэтому вам нужно следующее:
if ( wp_is_mobile() ) {
// Выполнять только для мобильных посетителей
add_filter( 'wp_nav_menu_items', 'B_function', 10, 2 ); function B_function(/* добавить B */ );
} else {
// Если мы не на мобильном устройстве, выполнить этот фильтр
add_action( 'wp_head', 'A_function' ); function A_function(/* добавить A */);
}

очень плохая идея, ненадежно, ломает кэширование, не адаптивно и, вероятно, имеет еще больше недостатков

PHP-код WordPress выполняется на стороне сервера — он не может и не должен определять размер экрана устройства клиента.
wp_is_mobile()
использует анализ пользовательского агента (user agent sniffing), то есть пытается сопоставить данные, которые предоставляет браузер клиента. Этот метод считается крайне ненадежным и имеет очень ограниченное применение.
Поскольку вы не указали, для какой цели нужны ваши ссылки, трудно рекомендовать подходящее решение. Надежные клиентские методы, такие как CSS media queries, обычно используются для точного определения контекста в браузере клиента.

wp_is_mobile()
никогда не следует использовать. На данный момент его существование в основном связано с некоторыми ошибками браузеров, которые необходимо обрабатывать на стороне админки.
Для любых случаев, где требуется учитывать физический размер устройства или размер окна браузера, это должно делаться с помощью медиаправил в CSS и JavaScript.

Я думаю, проблема в том, что автор пытается добавлять HTML-контент в зависимости от пользовательского агента, что сделает CSS бесполезным. Единственное, что приходит мне в голову — выводить весь код в JavaScript-файл и обрабатывать проблему там.
