web-dev-qa-db-fra.com

comment puis-je intégrer backend wordpress dans iframe

J'ai 2 sites Web http://www.aaa.com et http://www.bbb.com et ai besoin d'eux pour montrer la même chose.

Maintenant, je mets un iframe dans index.html et le télécharge sur aaa.com. C'est ok pour le front-end mais ça ne marche pas pour le backend, où ça affiche une page blanche.

Quelqu'un peut-il me suggérer comment je peux résoudre ce problème?

3
toonztudio

J'ai essayé d'étendre la version de @toscho

    //remove the restriction
    remove_action( 'login_init', 'send_frame_options_header' );
    remove_action( 'admin_init', 'send_frame_options_header' );

    //for added security
    add_action( 'login_init', 'Access_Control_Allow_Origin' );
    add_action( 'admin_init', 'Access_Control_Allow_Origin' );


    function Access_Control_Allow_Origin(){
        $Origin=get_http_Origin();
        $allowed_origins=array(//add your domains or keeps empty
            "aaa.com",
            "bbb.com",
        );
        $allowed=false;
        if(count($allowed_origins)>0){
            foreach($allowed_origins as $allowed_Origin){
                if (strstr($Origin,$allowed_Origin)){
                    $allowed=true;
                    break;
                }
            }       
        }else{
            $allowed=true;
        }
        if($allowed){
            return true;
        }else{
            send_Origin_headers();
        }
    }
3
itsazzad

Par défaut, WordPress envoie un en-tête HTTP pour empêcher l’incorporation d’iframe dans /wp_admin/ et /wp-login.php:

X-Frame-Options: SAMEORIGIN

C'est une fonctionnalité de sécurité. Si vous souhaitez supprimer cet en-tête, supprimez les filtres:

remove_action( 'login_init', 'send_frame_options_header' );
remove_action( 'admin_init', 'send_frame_options_header' );

Mais vous devriez vraiment utiliser la fonctionnalité multisite comme l’a suggéré Tom J Nowell.

3
fuxia