recherche

Maison  >  Questions et réponses  >  le corps du texte

La fonction WordPress is_user_logged_in ne fonctionne pas correctement dans siteurl et wp_redirect.

<p>J'ai essayé de modifier site_URL et wp_redirect en utilisant le code suivant : </p> <pre class="brush:php;toolbar:false;"><?php add_filter( 'site_url', 'mon_prefix_site_url', 10, 2 ); add_filter( 'wp_redirect', 'my_prefix_wp_redirect' ); fonction my_prefix_site_url( $url, $scheme ) { return my_prefix_modify_url( $url, $scheme ); } fonction mon_prefix_wp_redirect( $url ) { return my_prefix_modify_url( $url, null ); } function my_prefix_modify_url( $url, $scheme = null ) { $current_url = isset( $_SERVER['PHP_SELF'] ) ? sanitize_text_field( wp_unslush( $_SERVER['PHP_SELF'] ) ) : ''; if ( ! strpos( $current_url, 'wp-admin' ) && ! is_user_logged_in() ) { retour '/'; } renvoyer $url ; } ≪/pré> <p>Mais j'ai rencontré l'erreur suivante.
P粉358281574P粉358281574594 Il y a quelques jours337

répondre à tous(1)je répondrai

  • P粉253518620

    P粉2535186202023-07-29 18:11:47

    Je ne comprends pas vraiment quel est le but réel de ce code, si je le comprends bien, je pense qu'il casse certaines choses, mais à votre question littérale : écrivez simplement votre propre fonction. La fonction

    is_user_logged_in n'est pas compliquée dans la version par défaut :

    function is_user_logged_in() {
        $user = wp_get_current_user();
    
        return $user->exists();
    }
    

    Et wp_get_current_user est également enfichable mais simple :

    function wp_get_current_user() {
        return _wp_get_current_user();
    }
    

    Donc, vous écririez simplement ceci :

    function custom_is_user_logged_in() {
        return _wp_get_current_user()->exists();
    } 

    répondre
    0
  • Annulerrépondre