it-swarm.com.de

CSS mit einbinden PHP ohne einbindung von wp-load?

Ich habe eine aus PHP generierte CSS-Datei.

In meiner Datei steht ...

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

Ich habe gelesen, dass es nicht gut ist, wp-load.php so einzuschließen. Warum ich das tue, ist, die Umwelt dort hinein zu bringen.

Was ist die "richtige" Art, dies zu tun?

1
Jens Törnell

BEARBEITEN

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


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

  1. Fügen Sie dem $query_vars-Array mit dem query_vars-Filter eine neue Variable hinzu
  2. Stellen Sie bei der Aktion template_redirect sicher, dass Ihre custom.php-css-Datei enthalten ist, wenn die Abfragevariable 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');
    

Anschließend können Sie Ihrer Header-Datei ein einfaches CSS-Include hinzufügen.

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

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 M Y H: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 mit der integrierten Funktion PHP file_get_contents() aus der CSS-Datei abrufen und die CSS direkt in den Quellcode drucken.

2
rofflox