Variablen an eine add_action Hook übergeben [WordPress]

Mit globalen Variablen kommt man leider nicht weit und deswegen musste ich eine gesonderte Funktion verwenden...

    Inhaltsangabe
  1. Meine Verwendung

Ich habe heute eine add_action Hook in WordPress programmiert, wo ich eine Variable als Parameter an die anonyme Funktion mitgegeben habe. Ich würde euch gerne zeigen wie.

Erst einmal der Code, wie ihr Variablen an die add_action Hooks weitergeben könnt:

add_action( 'enqueue_block_editor_assets', function() use ($foo){
	wp_enqueue_script(
		$foo,
		get_template_directory_uri().'/blocks/'.$foo.'/block.js',
		array( 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' )
	);
});

Meine Verwendung

Ich habe in einem Blogbeitrag euch gezeigt gehabt, wie ich alle meine Gutenberg Blöcke gleichzeitig automatisiert von WordPress laden lasse.

Jetzt wollte ich jedoch nicht einmal mehr jedes Mal eine php-Datei anlegen, wenn ich einen Block programmiert habe und deswegen habe ich nach einer Lösung gesucht, wie ich denn alle Javascript-Dateien mit einem Mal laden lassen kann. Die Lösung sieht folgendermaßen aus:

foreach (glob(__DIR__ . '/*' , GLOB_ONLYDIR) as $block_path) {
	$block_slug = str_replace(__DIR__.'/','',$block_path);
	if( file_exists($block_path.'/'.$block_slug.'.php') ){
		require_once($block_slug.'/'.$block_slug.'.php');
	}elseif (file_exists($block_path.'/block.js')) {

		add_action( 'enqueue_block_editor_assets', function() use ($slug){
			wp_enqueue_script(
				$slug,
				get_template_directory_uri().'/blocks/'.$slug.'/block.js',
				array( 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' )
			);
		});

        wp_enqueue_style(
            $block_slug.'-style',
            get_template_directory_uri().'/blocks/'.$block_slug.'/'.$block_slug.'.css'
        );

	}
}

Dadurch habe ich es geschafft, dass ich nur noch einen Block in meinem Dist-Ordner erstellen brauche und alles andere wird vollautomatisch in WordPress rein geladen.

Ich hoffe, dass diese Tipps euch geholfen haben. Ich habe echt lange suchen müssen und wollte deswegen dieses Wissen mit euch teilen.

Themen

Gutenberg Javascript php Programmieren Technik Tipps WordPress

Beitrag teilen

WhatsAppen

Folgen Sie uns