[WP]: récupérer l'url d'un post en dehors du blog

WRInaute passionné
Bonjour,

Tout est dans le titre. en fait , je récupère un article au hasard de mon blog. donc j'interroge ma BD. le souci est que l'url n'est pas en dur dans la base (surement à cause de l'url rewriting).

je sais récupérer une url avec get_permalink(id_post) mais en dehors du blog, cela ne fonctionne pas !!!

j'ai même pensé à faire un script renvoiUrl.php?id=XXX dans le blog qui me renverrais l'url grâce à permalink, puis interrogé avec curl mais ça marche pô !!!


Je suis bloqué merci à vous donc !
 
WRInaute discret
Bonjour,

La méthode la plus simple : le RSS, mais je reconnais que cela ne répondra certainement pas à ton besoin ...

Sinon, il te faudra certainement créer un champ spécial pour l'url de chaque post ... car le champ "guid" contient généralement des url erronées ...

get permalink ... intéressant :eek:
 
WRInaute accro
Mieux et plus complet que le RSS (normalement), tu peux aussi utiliser ton sitemap pour récupérer les url (aussi bien ton sitemap.xml que ton plan de site si tu en as un, auquel cas curl sera ton ami).
 
WRInaute passionné
merci mais concrètement je cherche quoi dans mon site map ? puisque je ne connais pas l'url , comment savoir de quelle url j'ai besoin ?
 
WRInaute accro
Tu as dit que tu cherchais une url au hasard non ? Dans ton sitemap, une fois que tu l'explores, tu peux récupérer la liste complète des url via une regexp. Et faire un random sur cette liste pour avoir une url au hasard.

Mais j'ai peut-être mal compris ton besoin.
 
WRInaute passionné
c'est presque ça, sauf qu'en fait, j'ai besoin également du chapo du post.

en fait, j'affiche sur ma home l'extrait d'un post au hasard donc j'ai besoin :
-du titre
-du chapo
-de l'url pour linker (lire la suite ...)

avec le xml, je n'ai que l'url

à moins que je puisse interroger la BD à partir de l'url pour récupérer le titre te le contenu ?

pour info, voici mon xml : http://blog-maison-de-retraite.retraiteplus.fr/sitemap.xml et l'extrait de mon blog en bas à droite de cette page : www.retraiteplus.fr

Merci
 
WRInaute accro
Une fois que tu as recupéré l'url dans le sitemap, tu as plusieurs solutions :

1. Vu que tu as l'id du billet dans l'url tu peux effectivement requête en base pour récupérer les infos du billet à partir de cet id
2. Sinon tu envoies aussi curl sur l'url du billet, et tu en extrait le contenu

Mais la 1e solution est à mon avis la plus pérenne.
 
WRInaute passionné
UsagiYojimbo a dit:
Une fois que tu as recupéré l'url dans le sitemap, tu as plusieurs solutions :

1. Vu que tu as l'id du billet dans l'url tu peux effectivement requête en base pour récupérer les infos du billet à partir de cet id
2. Sinon tu envoies aussi curl sur l'url du billet, et tu en extrait le contenu

Mais la 1e solution est à mon avis la plus pérenne.

merci mais le chiffre apparaissant dans l'url n'est pas forcément l'id dans la base (puisque il y a les autosave, les revisions, ...)

non ?
 
WRInaute passionné
UsagiYojimbo a dit:
A toi de me dire en vérifiant, mais je tendrais à penser que si.

à mon avis, c'est compliqué car il faudrait prendre en compte le champ post_parent, voir s'il y a eu des maj ... compliqué

UsagiYojimbo a dit:
Sinon il y a la solution curl.
je pense partir sur cela. j'ai 2 soucis :

1- comment récupérer la liste complète des url via une regexp, que je puisse les stocker dans un tableau et prendre une url au hasard ?
2- comment extraire mon texte de mon post ? le titre est encapsulé dans un h2 (le premier de la page) et le contenu commence par <div class="entry">


merci samouraï


je suis nul en regexp :twisted:
 
WRInaute accro
Là-dessus je suis pas une star non plus, donc je laisse la parole à d'autres. Me semble quand même que te baser sur l'id et faire les vérif qui s'impose est pas non plus ingérable (et te permettrait de disposer d'un script qui ne serait pas à maintenir à chaque modif de ton template).
 
WRInaute passionné
merci de ton coup de main, mais on template ne bougera pas (ou alors le css), donc je vais me lancer sur cela

je passe donc le relai, quelqu'un veut-il le prendre ?
 
WRInaute accro
WRInaute passionné
intéressant en effet, merci

juste une question, je n'arrive pas à faire les includes : voici mon code :

Code:
require('/var/www/vhosts/domaine.tld/subdomains/sousdomaineamoi/httpdocs/wp-blog-header.php');
 
WRInaute discret
salut,

autre solution :
faire un script php sur ton blog qui te renvoie un tableau
Code:
<?php
...
echo serialize($arMonTableau);

sur ton site :
Code:
$arMonTableau = unserialize(file_get_contents($urlMonUrl));

plus qu'a mettre un contrôle ou deux pour la sécurité et c'est en général satisfaisant.

Gros avantage, si tu veux bouger le blog ou le site sur un autre serveur ça t'évite d'avoir à partager tes bases.
 
WRInaute passionné
joe coe a dit:
salut,

autre solution :
faire un script php sur ton blog qui te renvoie un tableau
Code:
<?php
...
echo serialize($arMonTableau);

sur ton site :
Code:
$arMonTableau = unserialize(file_get_contents($urlMonUrl));

plus qu'a mettre un contrôle ou deux pour la sécurité et c'est en général satisfaisant.

Gros avantage, si tu veux bouger le blog ou le site sur un autre serveur ça t'évite d'avoir à partager tes bases.

salut joe coe,

je rebondis sur ta réponse, j'aimerais bien la mettre en prod maintenant

comment crées tu ton tableau de posts sous WP sachant que j'ai besoin dedans de :
- l'url complète
- le titre
- le chapeau

Merci
 
Discussions similaires
Haut