CSS in PHP einbinden, ohne wp-load einzubinden?

Ich habe eine CSS-Datei aus PHP generiert.

In meiner Datei heißt es …

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

Ich habe gelesen, dass einschließlich wp-load.php wie das ist nicht gut. Warum ich das mache, ist es, die Umwelt dort hinein zu bekommen.

Was ist der “richtige” Weg, dies zu tun?

Solutions Collecting From Web of "CSS in PHP einbinden, ohne wp-load einzubinden?"

BEARBEITEN

Vergiss meine Antwort unten. Sie könnten einfach wp_register_style und wp_enqueue_style die in dieser Antwort beschrieben sind .


Sie könnten dies mit einer zusätzlichen Abfragevariablen tun.

  1. Fügen Sie dem $query_vars Array mit dem query_vars Filter eine neue Variable query_vars
  2. custom.php Sie bei der Aktion template_redirect sicher, dass die Datei custom.php -css enthalten ist, wenn die custom.php festgelegt ist.

     // 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'); 

Dann können Sie ein einfaches CSS-Include in Ihre Header-Datei einfügen.

 // header.php  

Zu guter Letzt müssen Sie Ihre benutzerdefinierte CSS-Datei definieren.

 // 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; } 

Sie können den Inhalt auch aus der CSS-Datei mit der eingebauten PHP-function file_get_contents() und die CSS direkt in den Quellcode drucken.