Ich bin neu in WordPress und folgende ist mein Szenario. Ich füge ein externes PHP-Skript in WordPress ein, indem ich eine neue Vorlage im Design erstelle und diese Vorlage dann auf einer neuen Seite verwende.WordPress-Thema bricht nach dem Einfügen von externen PHP? möglicher Fehler in der Ordnerkonfiguration?
Wenn ich dies tun, ist der neue Inhalt in der geladenen Seite sichtbar (und funktioniert wie erwartet), aber das Thema bricht für die Seite, d.h. alle Seitenleisten (rechts und unten) gehen verloren. und wenn ich eingeloggt bin, ist die Wpadmin-Leiste oben nur für diese Seite verloren. für alle anderen Seiten kommt alles zurück.
Könnt ihr mir bitte helfen, was hier schief gehen könnte? Ich bezweifle, dass irgendwo Ordner-Konfiguration irgendwo schief geht.
Es folgt, was ich tue: in meiner neuen Thema Seite Vorlage -
<?php
/**
* The template for displaying pages
*
* This is the template that displays all pages by default.
* Please note that this is the WordPress construct of pages and that
* other "pages" on your WordPress site will use a different template.
*
* Template Name: abctemplate
* @package WordPress
* @subpackage Twenty_Sixteen
* @since Twenty Sixteen 1.0
*/
?>
<?php
get_header();
?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
// Start the loop.
while (have_posts()) : the_post();
// Include the page content template.
get_template_part('template-parts/content', 'page');
include_once dirname(ABSPATH) . '\abc\index.php'; // <=== the EXTERNAL SCRIPT
// If comments are open or we have at least one comment, load up the comment template.
if (comments_open() || get_comments_number()) {
comments_template();
}
// End of the loop.
endwhile;
echo "end post loop";
?>
</main><!-- .site-main -->
<?php get_sidebar('content-bottom'); ?>
</div><!-- .content-area -->
<?php echo "get_sidebar"; get_sidebar(); ?>
<?php echo "get_footer"; get_footer(); ?>
Das obige Skript intern nach einigen Variablen einstellen, Anrufen folgenden Vorlage:
require_once('templates/'.$template.'/index.php');
die obige Vorlage eine einfache HTML-Seite, die einige Variablen in abc/index.php
ruftAufruf dieses bricht das Wordpress-Thema meist, das si debars, (ich bin mir noch nicht sicher, ob es etwas anderes bricht).
Könnte das bedeuten, dass Wordpress die benötigten Seitenleisten-Dateien nicht gefunden hat? aber alles ist in der Motivvorlage.
Im Grunde ist dieses ganze Szenario ein Laden einer vorhandenen Webseite in WordPress. Ich habe die Funktionalität funktioniert, aber die Benutzeroberfläche bricht.
Eine begründete Vermutung ist, dass die index.html Datei, die Sie aufrufen, nicht gut formatiert ist (z. B. nicht schließen alle Tags, die Sie öffnen ..) – niklas
Ich auch dachte, aber es ist nicht der Fall. Es hat etwas mit dem Kontext von Wordpress zu tun, dass es nicht die benötigten Theme-Dateien findet, wenn das Skript enthalten ist. Sobald ich das Skript kommentiere, erscheinen alle Seitenleisten wieder. Ich bin kein Experte dafür. Das Skript enthält hauptsächlich Inhalte, die sich auf die Admin-Seite beziehen und einige Variablen setzen. hier ist es: https://docs.google.com/document/d/1Jir2gy1dr5juXjw9nrGgYf18B5r9I2AzGOctW7q90NM – tank
setze debug auf true in deiner wp-config.php und suche nach Fehlern – niklas