Dynamischen Inhalt in eine Seite einfügen

Ich sehe, dass dieses Thema regelmäßig auftaucht, aber noch keine Antwort auf meine spezifische Anforderung gefunden hat.

Ich versuche, eine WordPress-Seite als Vorlage zu verwenden und database-bezogenen Inhalt (etwa 20 Felder Text, einschließlich Bilddateinamen) basierend auf einer ID als URL-Parameter (und Index für meine database) eingefügt. zB www.example.com/examplepage/?pid=123

Vor WordPress konnte ich dies einfach in PHP tun, indem ich einen Code ausführte, um einen databaseeintrag zu erhalten, und dann HTML mit diesen Feldern einfügen.

Ich habe ein Plugin in WordPress, mit dem ich einige PHP-Code-Snippets auf der Seite machen kann, aber das ist im Seitenhauptteil und ich glaube, dass die Überschrift schon ausgeschrieben wurde. Die Kopfzeile enthält Felder wie Titel und Meta-Desk, die von dynamischen Inhalten ausgefüllt werden sollen.

Ich habe Plug-Ins für die CMS-ähnliche Verwaltung von Immobilienanzeigen, Filmen usw. gesehen, aber meine databaseverwaltung ist eine ungewöhnliche Angelegenheit, daher muss ich einen benutzerdefinierten Build-Ansatz wählen.

Ich verstehe, dass ich im Skript functions.php etwas Arbeit für mein Theme machen muss, um das Seitenrendering von WordPress zu untersuchen, aber ich möchte aufpassen, dass allgemeine Seiten / Posts auf meiner Site nicht gestört werden. Es ist nur diese eine spezielle Seite, die Parameter akzeptiert und den entsprechenden Inhalt lädt.

Einige Ratschläge zu den Schritten, die ich ergreifen muss, würden sehr geschätzt werden.

Solutions Collecting From Web of "Dynamischen Inhalt in eine Seite einfügen"

Während Sie eine Seitenvorlage erstellen, können Sie in den Inhalt dieser Vorlage einfügen, was Sie wollen, und jedes gewünschte PHP-Snippet verwenden. Sie können also weiterhin so vorgehen wie in PHP. Dies könnte beispielsweise Ihre Seitenvorlage sein:

< ?php /* Template Name: My template */ get_header(); ?> 
< ?php if( isset( $_GET['pid'] ) ) { // Populate your dynamic content here } ?>
< ?php get_footer(); ?>

Aber Sie haben Recht bezüglich Titel und Meta-Tags des Dokuments, sie sind möglicherweise bereits gesetzt. Hier müssen Sie in die wp_title Filter- und wp_head Aktion wp_title und mithilfe der is_page_template function überprüfen, ob Sie sich in der Seitenvorlage befinden.

Angenommen, der Dateiname Ihrer Seite tempalte entspricht etwa page-mytemplate.php und befindet sich im Stammverzeichnis Ihres Themas:

 add_filter( 'wp_title', function( $title, $sep ) { if( is_page_template( 'page-mytemplate.php' ) ) { // Modify the $title here $title = 'my new title'; } return $title; }, 10, 2 ); add_action( 'wp_head', function() { if( is_page_template( 'page-mytemplate.php' ) ) { // Echo/print your meta tags here echo ''; } } ); 

Das Problem

Das sind ein großes Problem mit -Tags. WordPress hat keine Standardmethode, um -Tags des Dokuments zu verwalten. Wenn Sie ein Plugin verwenden, das -Tags hinzufügt, können Sie diese nicht überschreiben, es sei denn, das Plugin bietet eine Möglichkeit, dies zu tun.

Referenz

  • wp_title Filter
  • wp_head Aktion
  • is_page_template () function

Ich könnte etwas vermissen, aber:

Wenn Sie zum Beispiel nur ‘pid’ brauchen und es Teil der URL ist, dann ist es ziemlich einfach?

In der Seitenvorlage ‘Beispielseite’ machen Sie einfach a:

 $mypid = $_GET['pid']; 

dort und dann weiter mit der SQL-Abfrage basierend auf diesem Wert und echo eine Antwort aus.

Wenn Sie etwas mehr Ajax wollen, dann wenn der Benutzer landet auf ‘Beispielseite’ nehmen Sie die ‘pid’ und fügen Sie als class oder Datenattribut auf ein leeres Div. Say genannt: ‘Ergebnis-Container’

 < ?php $mypid = $_GET['pid']; ?> 

Und dann muss ein js-Skript auf dem Dokument ready ausgeführt werden, das das mypid-Attribut auf diesem div liest und einen separaten Abruf durchführt. Auf diese Weise kann die Seite geladen werden und einen ‘holenden’ Status sowie einige vorläufige Inhalte anzeigen, während die Ergebnisse geladen werden.

Hoffnung, die Sinn ergab.

-Typed mit fetten Fingern auf einem Handy! aaaaah.