add_filter zu ‘woocommerce_before_main_content’

Ich habe einen Filter in functions.php hinzugefügt und ändere die Priorität sehr hoch und niedrig auf 1, aber jedes Mal, wenn der Parameter eine leere Zeichenfolge ist “”;

add_filter( 'woocommerce_before_main_content','wc_start_layout'); function wc_start_layout($content){ $content=''; return $content; } 

Was mache ich falsch?

Solutions Collecting From Web of "add_filter zu ‘woocommerce_before_main_content’"

woocommerce_before_main_content ist kein Filter-Hook, es ist ein Aktions-Hook, also erwarte nicht, dass etwas zurückgegeben wird, weil es woocommerce_before_main_content ist, was eine Action-Hook-Callback-function zurückgibt, während für Filter-Hooks immer etwas auf das zurückgegebene Ergebnis wartet:

 // Action hook do_action('foo_action'); // Filter hook $bar = apply_filters('foo_filter'); 

woocommerce_before_main_content

Dieser Aktions-Hook wird von WooCommerce selbst verwendet, um zum Beispiel die Breadcrumbs einzufügen. Hier ist ein Ort (an dem WooCommerce unter anderem diesen Aktions-Hook freilegt) , siehe diesen Code (templates / archive-product.php: 16-24) :

 < ?php /** * woocommerce_before_main_content hook * * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content) * @hooked woocommerce_breadcrumb - 20 */ do_action( 'woocommerce_before_main_content' ); ?> 

Und hier ist ein Ort, an dem / wc-template-hooks.php: 46-51 WooCommerce die Breadcrumbs-function an diesen Aktionshaken anhängt:

 /** * Breadcrumbs * * @see woocommerce_breadcrumb() */ add_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 ); 

Wenn Sie jetzt die function woocommerce_breadcrumb() , werden Sie woocommerce_breadcrumb() , dass sie nichts verändert, was sie erhalten hat, woocommerce_breadcrumb() ist es der Zweck, die Breadcrumbs auszugeben .

Moral der Geschichte, ein Action-Hook erlaubt es Ihnen nicht, eine Variable zu ändern, Sie müssen einen Filter-Hook dafür finden.