Wenn Du Deinen CSS- oder JS-Block manuell nachladen möchtest, solltest Du sicherstellen, dass die Datei auch wirklich existiert. Sonst wird es schwierig. Du willst doch nicht versuchen, einen Block ohne CSS auszuführen? (Klingt wie eine Horrorvorstellung für Webdesigner!) Mit der PHP-Funktion file_exists()
kannst Du ganz einfach überprüfen, ob die Datei existiert. Der Pfad zur Datei wird übrigens nicht mit get_stylesheet_directory_uri()
ausgegeben, sondern mit get_theme_file_path()
. Klar, oder?
Dieser PHP-Code lädt das CSS für einen bestimmten Block, wenn dieser nicht automatisch in den Blockinhalt eingefügt wird. Dazu wird die Funktion add_action()
verwendet, um eine Aktion mit dem Namen init
auszulösen und die Funktion uldi_get_header_action()
aufzurufen. Innerhalb dieser Funktion wird zuerst überprüft, ob sich der Benutzer im Admin-Bereich befindet oder nicht.
Wenn der Benutzer nicht im Admin-Bereich ist, wird überprüft, ob die CSS-Datei für den betreffenden Block vorhanden ist. Wenn dies der Fall ist, wird das CSS mit wp_enqueue_style()
geladen und dem Block zugeordnet. Das bedeutet, dass das CSS nur dann geladen wird, wenn es tatsächlich benötigt wird, was die Website schneller und effizienter macht.
Eventuell ist es nötig, mit clearstatcache() vorgängig den Status-Cache zu löschen.
add_action( 'init', 'uldi_get_header_action', 10, 1 );
function uldi_get_header_action(){
if(!is_admin()){
//CSS für Block laden, da dieser nicht per Block eingefügt wird
$block_css = get_theme_file_path( '/blocks/myblock/block.css');
clearstatcache();
if(file_exists($block_css)):
$css_path = get_stylesheet_directory_uri() . '/blocks/myblock/block.css';
wp_enqueue_style('block_css', $css_path, [], 1 );
endif;
}
}