drwxr-xr-x 2 f012e8f4 w0134aab 4096 Mar 26 12:03 . drwxr-xr-x 6 f012e8f4 w0134aab 4096 Mar 18 10:36 .. -rw-r--r-- 1 f012e8f4 w0134aab 3837 Mar 20 08:45 author.php -rw-r--r-- 1 f012e8f4 w0134aab 745 Mar 18 10:39 backend-errors.php -rw-r--r-- 1 f012e8f4 w0134aab 4392 Mar 31 08:25 meta_boxes.php -rw-r--r-- 1 f012e8f4 w0134aab 6837 Apr 17 09:53 toc.php Variablen an eine add_action Hook übergeben [WordPress] – Talha Sariyürek

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