Intereting Posts
Как преобразовать номер недели и год в временную метку unix? Хранение записей базы данных в массиве Как использовать include внутри функции? Как отменить отправку на AjaxForm PHP-переменная в строку запроса XML Неустранимая ошибка: Непринятая ошибка: вызов неопределенной функции mysql_connect () Обратный геокодирование на Google Maps api v3 Сортировка PHP array_intersect_key () результатов по второму массиву PHP Как получить доступ ко всем элементам многомерного массива, если ни один индекс не известен? Отправка HTML-сообщения через PEAR при использовании аутентификации SMTP возвращает ошибку JSON недействителен (JSONview), но я не вижу, как $ wpdb-> get_results ($ запроса); Возвращает NULL с переменным $ query – тот же запрос работает с жестким кодом Какие символы НЕ экранированы с помощью подготовленного оператора mysqli? Определение ошибки тайм-аута кривизны PHP PHP Передача по ссылке в foreach

Альтернатива WordPress's get_site_url ()

Я пытаюсь получить значение, похожее на URL-адрес сайта WordPress, для идентификации определенной установки WordPress.

Поскольку get_site_url может быть изменен (с плагином или напрямую), я пришел к следующему:

 untrailingslashit('http://'.$_SERVER['HTTP_HOST'].str_replace($_SERVER['DOCUMENT_ROOT'],'', ABSPATH)); 

Это дает мне хороший результат для определения WordPress на основе этого адреса, но я любопытству, если это может вызвать проблемы на некоторых установках сервера?

Вот мой ответ, основанный на информации, которую вы предоставили.

Создайте функцию. Сначала проверьте, соответствует ли домашний URL-адрес константе в wp-config. Если так, то есть URL. Он отменяет любое значение DB, поэтому, если он не установлен правильно, сайт не будет функционировать.

Если это не задано, запустите ручной запрос БД, чтобы получить значение дома из таблицы опций. Запустив его вручную, вместо использования get_option, это значение не может быть изменено плагином, прежде чем вы его используете.

 function wpse_get_license_url() { global $wpdb; if ( defined( 'WP_HOME' ) ) { return WP_HOME; } else { $row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", 'home' ) ); return $row->option_value; } } 

Я надеюсь, что эта ссылка может помочь вам лучше понять последствия использования

home_url () vs site_url ()

 home_url() will only return the mapped domain on or after the init has fired. Calling it before then will return the .wordpress.com domain. If you accidentally use site_url() in your templates, theme-side links will still redirect correctly to the home_url() equivalent. home_url() is the preferred method, as it avoids the above redirect. 
 blogininfo('siteurl'); get_option('home'); home_url(); site_url();