Les fichiers externes sont utilisés pour afficher du contenu externe sur votre site WordPress. À l'aide d'un shortcode, vous pouvez facilement y parvenir.
Instructions : Ajoutez le code suivant au fichier functions.php de votre thème WordPress pour inclure le shortcode de fichier externe.
function show_file_func( $atts ) {
extract( shortcode_atts( array(
'file' => ''
), $atts ) );
if ($file!='')
return @file_get_contents($file);
}
add_shortcode( 'show_file', 'show_file_func' );
Vous pouvez maintenant utiliser le shortcode ci-dessous avec le lien de votre fichier externe pour inclure le fichier externe dans vos articles et pages WordPress.
[show_file file="http://www.mysite.com/somefile.html"]
Vous pourriez également aimer créer un formulaire de téléchargement de fichiers dans WordPress.
Veuillez envisager d'ajouter une deuxième version de votre code qui utilise un transient qui expire, par exemple, toutes les 24 heures ou similaire, pour éviter des appels trop fréquents à file_get_contents() pour les fichiers externes.
developer.wordpress.org/apis/handbook/transients/
Juste Wow ! J'avais un code qui fonctionnait avant, mais la dernière mise à jour l'a cassé et il renvoie maintenant une erreur. J'ai passé des heures à essayer de le réparer, mais c'était désespéré. J'ai cherché une solution et j'ai trouvé la vôtre. Cela correspond parfaitement à mon code maintenant. Merci !
De rien. Nous sommes heureux de savoir que notre code vous a aidé.
Vous avez apporté la solution à mes innombrables heures de recherche en une minute. Vous êtes une perle.
Un grand merci pour cette contribution bien expliquée et simple.
J'ai cherché longtemps chez Google et autres pour un tel code. Tous les codes essayés jusqu'à présent n'ont pas fonctionné.
Mais celui-ci, issu du post, fonctionne très bien et a été écrit de manière compréhensible.
Une seule petite chose me dérange encore.
Si j'appelle le lien à inclure directement, toutes les lettres s'affichent correctement.
Si je regarde le lien inclus dans le WP, les ö, ä, ü deviennent étranges avec des caractères ? affichés.
Pourquoi cela, que dans le fichier (lien) à inclure j'ai déposé le code suivant.
J'ai également placé la ligne dans WP, où j'ai également placé le lien d'inclusion, mais cela n'a pas fonctionné.
Comment puis-je encore corriger cette petite erreur ?
Pourriez-vous poster un exemple de la façon dont le lien change ?
C'est fait. Merci beaucoup.
Content que ça ait aidé, Baba !
Les variables WP ne sont pas reconnues dans le fichier inclus. J'ai aussi essayé $_GET, $_POST mais sans succès. Comment résoudre ça ?..
Ce n'est pas quelque chose que j'ai essayé de faire, cependant je ne suis pas sûr pourquoi vous voudriez inclure des variables WP alors que vous pourriez le faire dans le post ou en utilisant functions.php et shortcode. Qu'essayez-vous de faire, cela pourrait m'aider à comprendre la meilleure option.
Ce fragment a de sérieuses implications de sécurité. Il pourrait permettre à n'importe quel éditeur ou utilisateur d'accéder et de lire le contenu de n'importe quel fichier sur le serveur. Vous pourriez utiliser l'API HTTP intégrée de WordPress et utiliser wp_remote_get au lieu de file_get_contents().
Bien
Ça a l'air bien, mais comment inclure du code qui fonctionne ? Je veux dire, j'ai des trucs de galerie nextgen que j'inclurais de cette façon, mais le shortcode ne fonctionne pas (il affiche le shortcode nextgen et non les miniatures) et les plugins ne fonctionnent pas non plus (comme auto-hyperlink, même le CSS ne fonctionne pas) sur le contenu du fichier inclus à distance.
très bien !
Cela fonctionnera-t-il dans une zone de widget ?
Vous auriez besoin d'activer les shortcodes pour les widgets, par exemple :
add_filter(‘widget_text’, ‘do_shortcode’);