Intereting Posts
Как сделать интерфейс похожим на многосайтовый для переключения между несколькими (одиночными) сайтами для администраторов? Показать сообщения за текущий день в Single.php Почему это возвращается как нуль? Это неверно. Есть одно сообщение Как создать настраиваемый плагин Сделайте больше действий после успешного входа в систему Перемещение медиа-библиотеки в медиа-библиотеку совершенно другого сайта WooCommerce скрывает определенную категорию от отображения на одном продукте Почему сообщение изменено не равно последней дате пересмотра последнего сообщения Неверный порядок вывода при смешивании WP_CLI :: API и php-cli-tools Как установить пользовательский тип сообщения в качестве заголовка сообщения, чтобы избежать «Автопроекта», wp_enqueue_scripts не загружают мои скрипты Переводимые категории WP Options Query «Переписать правила», взяв 10 секунд после тестирования wp_insert_post () Как добавить поддержку галереи к настраиваемому типу сообщений? Перекрестные продажи на странице продукта WooCommerce

Включить CSS с PHP без включения wp-load?

У меня есть CSS-файл, созданный с PHP.

В моем файле говорится …

header("Content-type: text/css"); define('WP_USE_THEMES', false); include '../../../../wp-load.php'; 

Я читал, что в том числе wp-load.php, как это нехорошо. Почему я делаю это, чтобы получить окружающую среду там.

Каков «правильный» способ сделать это?

РЕДАКТИРОВАТЬ

Забудьте мой ответ ниже. Вы можете просто использовать wp_register_style и wp_enqueue_style описанные в этом ответе .


Вы можете сделать это с помощью дополнительной переменной запроса.

  1. Добавьте новую переменную в массив $query_vars с фильтром query_vars
  2. В действии template_redirect убедитесь, что ваш файл custom.php включен, если задана переменная запроса.

     // functions.php function wpse26013_add_query_vars(query_vars) { $query_vars[] = 'style'; return $query_vars; } add_filter('query_vars', 'wpse26013_add_query_vars'); function wpse26013_include_custom_css() { $style = get_query_var('style'); if($style == 'custom') { include_once(get_stylesheet_directory_uri() . '/css/custom.php'); return; } } add_action('template_redirect', 'wpse26013_include_custom_css'); 

Затем вы можете добавить простой css include в свой файл заголовка.

 // header.php <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('stylesheet_url') . '/css/?style=custom'; ?>" /> 

И последнее, но не менее важное: вы должны определить свой собственный файл css.

 // custom.php <?php header('Content-type: text/css'); header("Cache-Control: must-revalidate"); header('Expires: ' . gmdate('D, d MYH:i:s', time() + 1209600) . ' GMT'); $options = get_option('webeo'); ?> #header #logo { background: url('<?php echo get_stylesheet_directory_uri() . '/images/' . $options['header']['site_logo']; ?>') no-repeat; } 

Вы также можете получить содержимое из файла css с встроенной функцией PHP file_get_contents() и распечатать css непосредственно в исходном коде.