it-swarm.com.de

Gibt es eine Aktion wie 'init_frontend'

Ich habe init und init_admin gefunden. Gibt es eine Aktion, die nur im Frontend ausgeführt wird? Vielen Dank.

3
thom

Sie können add_action() und einen is_admin()-Check kombinieren:

! is_admin() and add_action( 'init', 'my_custom_callback' );

Jetzt wird die Rückruffunktion nur im Front-End ausgeführt.

5
fuxia

'template_redirect' ist das nützlichste.

2
scribu

Spät zur Party, fand aber die anderen Antworten nicht ganz so klar.

Es gibt keinen init-ähnlichen Hook, der nur ein Front-End ist.

admin_init only wird im Dashboard ausgeführt.

init wird auf sowohl dem Front-End als auch dem Dashboard ausgeführt.

Wenn Sie also die integrierte WordPress-Funktion is_admin () und den Hook init kombinieren, können Sie eine Funktion erstellen, mit der Sie nur Front-End-Aufgaben ausführen können:

add_action( 'init', 'my_init_frontend_only_function' );

function my_init_frontend_only_function() {
    // exit function if not on front-end
    if ( is_admin() ) {
        return;
    }

    // remaining code will only run on the front end....
    // do stuff here....
}
1
cale_b

Sie können hierfür die Aktion wp_loaded verwenden.

// If u want to load a function only in the front end.
add_action( 'wp_loaded', 'my_front_end_function');
function my_front_end_function() {
    if ( !is_admin() ) { 
        // Only target the front end
        // Do what you need to do
    }
}

https://codex.wordpress.org/Plugin_API/Action_Reference/wp_loaded

0
Jarmerson