it-swarm.com.de

Benutzerdefinierten Inhalt nicht aus der Beitragstabelle ausgeben?

Es wäre am besten, wenn ich anfangen würde, die Situation zu erklären:

Vor einiger Zeit habe ich ein Property/Real Estate Management System mit PHP und MySQL erstellt. Es funktioniert großartig und ich habe viele Kunden, die es jetzt verwenden, aber ich möchte seine Fähigkeiten auf WordPress erweitern. Ich weiß ein bisschen über die Plugin-Entwicklung Bescheid, aber ich weiß nicht, wie ich das Projekt angehen oder wie ich es entwerfen soll.

Grundsätzlich möchte ich ein Plugin erstellen, das Informationen aus einer Datenbank (die mit allen Eigenschaftsinformationen) entnimmt und in WordPress anzeigt. Ich muss 3 Teile erstellen: ein Suchformular, eine Ergebnisliste und eine Seite, um die Eigenschaftsinformationen anzuzeigen. Hier sind einige wichtige Punkte:

  1. Ich möchte die Eigenschaftsinformationen nicht zur Beitragstabelle hinzufügen. Zum Beispiel bei posts/custom-post-type pro Eigenschaft. Ich möchte die Daten direkt aus einer anderen Tabelle abrufen.
  2. Ich möchte freundliche URLs verwenden können. Zum Beispiel: http://meinesite.com/eigentum/56
  3. Ich möchte in der Lage sein, den Titel und die Beschreibung (im Kopfbereich) mit Daten aus jeder Eigenschaft festzulegen
  4. All dies muss über das Plugin geschehen und kann sich NICHT auf das Thema verlassen.

Also, was sind deine Ideen? Wie soll ich diese Herausforderung angehen? Ich habe mir Folgendes überlegt, bin mir aber nicht sicher, ob es funktionieren wird: 1. Erstellen Sie einen benutzerdefinierten Beitragstyp mit dem Namen "Eigenschaft". 2. Erstellen Sie eine Vorlagendatei zum Anzeigen der Eigenschaftsinformationen. 3. Erstellen Sie eine Vorlagendatei, um das Suchformular und die Ergebnisse anzuzeigen. Das könnte so aussehen und Vorlage 4 archivieren. Das ist soweit ich komme. Ich weiß nicht, wie man WordPress dazu bringt, einen Beitrag anzuzeigen, der eigentlich nicht da ist.

Was sind deine Ideen?

Ich schätze die Hilfe.

1
VinkoCM

Grundsätzlich möchten Sie benutzerdefinierte Posts in WordPress, die nur auf externe Daten verweisen?

Wenn Sie keinen vollständigen Import wünschen, gehen Sie wie folgt vor:

  1. Speichern Sie eine eindeutige Eigenschafts-ID (die für Ihre externen Daten sinnvoll ist) als Meta-Feld oder Guid in einem benutzerdefinierten Beitragstyp.
  2. Erstellen Sie eine Wrapper-Funktion, die die ID Ihres benutzerdefinierten Posts übernimmt, und rufen Sie die ID ab. Verwenden Sie eine separate Instanz der wpdb-Klasse , um Daten von einer externen Datenbank abzufragen und zurückzugeben ( vorausgesetzt, es ist auch MySQL oder Sie sind allein mit dem Abrufen dieser Daten). Verwenden Sie diese Option nach Bedarf in der Vorlage oder fügen Sie sie hinzu, um Inhalte mit Filtern usw. zu veröffentlichen.
  3. Fügen Sie einen Verband hinzu, z. B. den regelmäßigen Import von Eigenschaftsbezeichnern mit cron.
1
Rarst

Ich habe dies durchgemacht, es hängt stark davon ab, wie Sie die Quelldaten von Immobilien, direkten Datenbankzugriff, Rets, mls, ibx, Flat-Exporte, RSS usw. abrufen.

Wenn Ihre Quelle sehr kompetent ist, kann sie leicht einen Json- oder RSS-Feed (oder eine API noch besser) bereitstellen. Dies ist bei weitem die beste Option.

Wenn sie traditionellere Flatfile-Exporte oder Datenbank-Exporte verwenden, benötigen Sie ein benutzerdefiniertes Skript, das die Daten analysiert, die ordnungsgemäß in die WordPress-Datenbank eingefügt werden sollen. Ich würde empfehlen, was Rarst gesagt hat, und tatsächlich habe ich es so gemacht.

Mit benutzerdefinierten Beitragstypen und benutzerdefinierten Metafeldern werden alle Daten in die Metafelder geworfen, was die Ausgabe mit allen integrierten WordPress-Funktionen (Archive, Tags, Kategorien, Permalinks, Abfragen usw.) sehr einfach machte.

Die einzige Einschränkung war das Anpassen der Suche nach Metafeldern, da ich aufgrund der Schwierigkeit und der Zeit, die ich mit einem Plugin verbracht habe, ein einwandfreies Funktionieren hatte.

ps. Die Alternative, die ich ausprobiert habe, war Pods CMS (Plugin), aber am Ende habe ich nur die Standardtabellen verwendet.

1
Wyck