web-dev-qa-db-fra.com

Le contenu personnalisé ne sort-il pas de la table des messages?

Le mieux serait que je commence par expliquer la situation:

Il y a quelque temps, j'ai créé un système de gestion de propriétés/immobilier utilisant PHP et MySQL. Cela fonctionne très bien et beaucoup de clients l’utilisent maintenant, mais j’aimerais étendre ses capacités à Wordpress. Je connais un peu le développement de plugins, mais je ne sais pas comment aborder le projet ni le concevoir.

En gros, je veux créer un plugin qui prend des informations d'une base de données (celle avec toutes les informations de propriété) et les affiche dans wordpress. J'ai besoin de créer 3 parties: un formulaire de recherche, une liste de résultats et une page pour afficher les informations de propriété. Voici quelques points importants:

  1. Je ne veux pas ajouter les informations de propriété à la table posts. Par exemple, sur posts/custom-post-type par propriété. Je veux récupérer les données directement à partir d'une autre table.
  2. Je veux pouvoir utiliser des URL conviviales. Par exemple: http://monsite.com/propriété/56
  3. Je veux pouvoir définir le titre et la description (dans la section head) avec les données de chaque propriété
  4. Tout cela doit arriver à partir du plugin et NE POUVEZ PAS compter sur le thème.

Alors, quelles sont tes idées? Comment dois-je aborder ce défi? Voici ce que je pensais, mais je ne sais pas si cela fonctionnera: 1. Créez un type de publication personnalisé appelé "Propriété". 2. Créez un fichier de modèle pour afficher les informations de propriété. 3. Créez un fichier modèle pour afficher le formulaire de recherche et les résultats. Cela pourrait être comme et archiver le modèle 4. C'est tout ce que j'ai eu. Je ne sais pas comment faire que WordPress affiche un message qui n'y est pas.

Quoi qu'il en soit, quelles sont vos idées?

J'apprécie l'aide.

1
VinkoCM

En gros, vous voulez des messages personnalisés dans WordPress qui ne seront que des pointeurs vers des données externes?

Si vous ne voulez pas d'importation complète, alors:

  1. Stockez une sorte d'identificateur de propriété unique (qui convient à vos données externes) en tant que métadonnées ou indications dans le type de publication personnalisé.
  2. Créez une fonction wrapper qui prendra l'identifiant de votre message personnalisé, récupérera l'identifiant et utilisera une instance distincte de la classe wpdb pour interroger et renvoyer les données d'une base de données externe ( en supposant que ce soit aussi MySQL ou que vous soyez seul avec la récupération de ces données). Utilisez-le dans le modèle si nécessaire ou ajoutez-le pour publier du contenu avec des filtres, etc.
  3. Ajoutez un peu d'habillage, comme une importation périodique d'identifiants de propriété avec cron.
1
Rarst

Je suis passé par là, cela dépend fortement de la façon dont vous obtenez les données immobilières sources, l’accès direct à la base de données, les RETS, les MLS, les IBX, les exportations plates, les flux RSS, etc?

Si votre source est très compétente, elle pourrait facilement fournir un flux json ou rss (ou même une API), c’est de loin la meilleure option.

S'ils utilisent des exportations de fichiers plats ou de bases de données plus traditionnelles, vous aurez besoin d'un script personnalisé qui analyse correctement les données à insérer dans la base de données WordPress. Je recommanderais ce que Rarst a dit et, en fait, voici comment je l'ai fait.

En utilisant des types de post personnalisés et des méta-champs personnalisés, toutes les données sont jetées dans les méta-champs, ce qui facilite grandement la sortie en utilisant toutes les fonctionnalités intégrées de WordPress (archives, tags, catégories, permaliens, requêtes, etc.).

Le seul inconvénient était la personnalisation de la recherche de méta-champs, en raison de la difficulté et du temps où j'ai utilisé un plugin et cela fonctionne parfaitement.

ps. L’alternative, que j’ai testée, était Pods CMS (plugin), mais au final j’ai utilisé les tables par défaut.

1
Wyck