Bonjour à tous !

Je me présente je suis plutôt débutante en WP et en train de construire un site wordpress qui devra etre attaché à un logiciel de traitement d'annonces. En bref, la personne va entrer des données dans son logiciel, les données seront récupérés dans une nouvelle table dans la base de données WP et affichées sur le site via des requêtes php "classiques". Le tout dans le thème WP...

En découvrant WP, j'ai appris à créer des Custom Post Type et c'est plutôt sympa ! Dans mon cas, j'ai suivi le tutoriel vidéo posté sur ce site pour créer un Custom Post Type et gérer la Taxonomie. Ca a été intéressant mais n'a pas récolu mon problème de traitement de données externes à WP...

Actuellement, j'ai toujours le Custom Post Type déclaré comme sur le tutoriel, le fichier type-custom-post-type existe aussi et j'ai intégré une requête SQL basique pour traiter les données de la table à la place de la boucle WP. Cette page affiche bien la liste de toutes les annonces de la table, mais impossible de construire une page du type single-annonces.php. Quoi que je fasse, je n'arrive pas à afficher une annonce seule et complète sur une page. J'ai toujours une page d'erreur 404, cela veut sans doute dire que WP ne trouve pas cette page car je suis sortie du 'chemin', de la hiérachie ?

Alors après des heures de recherche et essais en tout genre, je ne sais plus quoi penser, ce qui entre en jeu (les permaliens, le fait d'avoir intégré du php dans une page de custom post type,le php en lui-même, les templates, ...) et ce que je pourrais faire.

Je remercie d'avance toute personne qui aurait un avis sur la question et félicite encore la personne qui a fait les tutos.
Tcho !

7 réponses


dElwinn
Auteur
Réponse acceptée

Hello,
Merci à tous les 2 pour ces 2 idées, je vais les creuser et vous ferais part de mes conclusionset ou des problèmes rencontrés d'ici peu... c'est pourquoi je ne ferme pas le sujet si cela ne vous dérange pas.
Tcho !

Pour avoir accés à ce fichier single, il faudrait que ces articles fassent partie de la table prévue par Wordpress et faire un loop normal afin de les récupérer sinon tu es dans une impasse. Lorsqu'il ajoute un article depuis son logiciel, il faut l'ajouter aussi dans la table wp_post. Tu peux utiliser cette méthode :

$my_post = array();
  $my_post'post_title'] = 'Mon article';
  $my_post'post_content'] = 'Texte du post';
  $my_post'post_status'] = 'publish';
  $my_post'post_author'] = 1;
  $my_post'post_category'] = array(1);
  wp_insert_post( $my_post );
dElwinn
Auteur

Bonjour et merci de ta réponse rapide !

Alors c'est exactement ce que je craignais... C'est pas le top top de doubler les données non ?? Mais si je pars sur ce principe là, il faudra que l'id de l'annonce dans la table à part soit reprise et affiliée à l'id de l'annonce dans wp_post ? J'imagine que c'est pas ce biais qu'on peut lier les 2 le plus facilement ?

Sinon depuis ce logiciel, tu enregistres les annonces dans la table wp_post directement pour éviter les doublons. Pas simple ton affaire...

Sinon solution "bof mais ça marche", tu crée 2 template de pages (donc 2 template php) et tu crée 2 pages réelles dans wordpress puis dans la page1 tu met ton code avec la boucle perso et tu appelle la page2 avec un argument /page2?id=3
Et dans le template de cette page 2 tu fais ton code pour la single :)

dElwinn
Auteur

Ca marche !!!! Mille merci Grafikart ! Je retiens ce stratagème !

Le seule point négatif c'est que, comme mes 2 pages sont réelles, leur titre est fixe... pas top pour le référencement, car je veux que le titre de l'annonce sorte en titre de page, et donc qu'il se renouvelle.
Bref c'est pas grave déjà une étape de passée, je trouverai bien une solution !

Très bonne continuation ! Tcho !

dElwinn
Auteur

Bonjour Grafikart,
Bonjour à tous,

Je me permets de réouvrir ce sujet car j'ai une question précise concernant la solution que tu (grafikart) m'as fourni il y a 15 jours : se pourrait-il que cette configuration entre en conflit avec des plugins (qui n'ont rien à voir avec mes appels à la base de données) ?

Car dès que j'intègre mon code dans les pages, les plugin SlideDeck, Wp-Cumulus et Colorful Tag Cloud plantent ! En ligne le résultat ici :

  • en page d'accueil, le diaporama slidedeck normalement situé en haut du corps de page n'apparaît pas.
  • dans la sidebar, le plugin Tag n'affiche que le titre et aucun mot.
  • dans le footer, WP cumulus est figé (carré noir).

Parallèlement, mon code php marche et j'affiche sans problème les données que j'appelle (denières annonces en page d'accueil, rubrique Acheter, Louer, ...).

Je ne comprends pas du tout ce qu'il se passe. Quelqu'un pourrait-il m'aider ?
Merci d'avance !