Verwenden Sie die Seitenvorlage für benutzerdefinierte $ _GET-Inhalte

Ich habe eine Produktliste und möchte auf einen Link klicken und auf eine Seite mit weiteren Informationen über das Produkt gelangen, was ich mit $_GET tun kann:

 $s .= '

id.'>Details

';

Und dann in test.php ich:

 if (isset($_GET['info'])) { echo 'string'; } 

Damit habe ich natürlich nur eine leere Seite mit einer string geschrieben, aber ich habe mich gefragt, ob es möglich wäre, eine Seitenvorlage auf dieser Seite zu verwenden, also würde ich im Bereich der Seitenvorlage eine string schreiben (wie wo) Ich würde die Ausgabe bekommen, wenn ich eine Post-Schleife auf einer regulären Seite hätte)?

Solutions Collecting From Web of "Verwenden Sie die Seitenvorlage für benutzerdefinierte $ _GET-Inhalte"

Mit dem template_include Filter können Sie eine Vorlagendatei aus Ihrem Design laden:

 add_filter( 'template_include', 'my_page_template', 99 ); function my_page_template( $template ) { if ( isset( $_GET['info'] ) && $_GET['info'] == 'some_value' ) { $new_template = locate_template( array('my-template.php' ) ); if ( '' != $new_template ) { return $new_template ; } } return $template; } 

Wenn Sie die Tempalte-Datei an einem anderen Ort überprüfen möchten, können Sie das tun. Sie können beispielsweise prüfen, ob das Theme / Child-Theme die Vorlagedatei hat, die Sie laden möchten. Wenn nicht, laden Sie eine Standard-Template-Datei aus Ihrem Plugin-Pfad:

 add_filter( 'template_include', 'my_page_template', 99 ); function my_page_template( $template ) { if ( isset( $_GET['info'] ) && $_GET['info'] == 'some_value' ) { $new_template = locate_template( array('my-template.php' ) ); if ( '' != $new_template ) { //my-template.php file has been found in theme/child theme folder $template = $new_template ; } else { //load template callback when the file dosen't exist in theme $template = PATH_TO_MY_PLUGIN . '/my-template.php'; } } return $template; } 

Siehe auch template_redirect- Filter.

Ja, du kannst. Sie können eine zu verwendende Seitenvorlage erstellen und dabei Folgendes verwenden:

 if (isset($_GET['info'])) { echo $_GET['info'] } 
  1. Kopieren Sie Ihre Standardseitenvorlage und erstellen Sie eine neue Seitenvorlage. Stellen Sie sicher, dass Sie auch den Wert für ‘Vorlagenname: XXXXX’ ändern. Die Vorlage sollte die Befehle get_header und get_footer über / unter Ihrem neuen Code als Mimimmum verwenden, um die Websitevorlage auf die Seite anzuwenden.

  2. Erstellen Sie eine neue Seite und wenden Sie die Vorlage auf diese Seite an.

Wenn Sie nicht weiterkommen, lassen Sie es mich wissen und ich werde Sie mehr führen, sobald ich weiß, wo Sie Probleme haben.