web-dev-qa-db-fra.com

Charger le contenu du post dans iframe

Je souhaite charger un article WordPress dans une iframe lorsqu'un lien sur une page WordPress est cliqué. C'est le lien que j'ai actuellement.

<a href="' . get_post_permalink($sight->ID) . '" target="map-loader">Read the report</a>

Ensuite, je veux que le contenu de cet article (pas d'en-tête ni de pied de page, etc.) soit chargé dans un iframe lorsque l'utilisateur clique sur le lien. C'est l'iframe qui se trouve sur la page.

<iframe name="map-loader" src="map-iframe.php"></iframe>

Je suis à mi-chemin. Lorsque le lien est cliqué, l'iframe charge une page wordpress complète avec l'en-tête et le pied de page, etc. Ce que je veux, c'est le contenu de la publication à charger dans l'iframe, sans en-tête ni pied de page.

J'ai essayé ceci dans map-iframe.php mais sans succès. Charge toujours le modèle wordpress entier.

<?php the_content('Read the rest of this entry »'); ?>

Je pense que mon lien a besoin de quelque chose qui spécifie que je veux seulement charger le contenu de la publication.

Ou serait-il préférable de charger avec ajax?

2
user1681447

Pas sûr, mais je pense qu'une solution ajax serait plus appropriée.

Quoi qu'il en soit, si je comprends bien, vous avez une archive dans laquelle les publications complètes sont chargées à l'intérieur d'iframe.

Si c'est le cas, vous pouvez modifier le fichier de modèle (single.php) et supprimer l'en-tête et le pied de page.

jetez un oeil à Hiérarchie des modèles

pour en savoir plus, j'ai trouvé ceci qui vous guidera vers des fonctionnalités plus avancées: http://bavotasan.com/2009/custom-template-for-single-posts-in-wordpress/

Note : si vous voulez aussi vous débarrasser de adminbar, essayez ceci: show_admin_bar(false); en haut de votre code.

Vous n’avez pas testé, mais si cela ne fonctionne pas, vous pouvez vous connecter à init et cocher

if(is_page()) {
    show_admin_bar(false);
}

Modifier:

Vous pouvez également configurer une nouvelle page qui sera postée en fonction de votre ID.

Commençons par créer un modèle personnalisé

  • Dans votre dossier de thèmes, créez le fichier template-iframe.php (par exemple).
  • mettre ce code à l'intérieur

<?php
/*
* Template Name: IFrame
*/
   $id = intval($_GET["ID"]);
   $post = get_post($id);
   var_dump($post);
?>
  • Ensuite, allez au tableau de bord et créez la page iframe et dans la barre latérale où il est écrit: template, choisissez le modèle créé (Iframe)
  • enregistrer et aller à l’URL et au temps http: //yoururl.domain/iframe/? ID = 1

il devrait vous rendre votre message

Bien sûr, vous devez concevoir votre propre modèle.

3
CBeTJlu4ok