Ich habe ein Plugin, das auf der folgenden Seite ein Panel erstellt:
mysite.com/wp-content/plugins/myplugin/includes/mypanel.php
Ich möchte dieses Panel auf der folgenden Seite verwenden
mysite.com/mypanel
Die Lösung, die ich versucht habe, war die Verwendung mypanel.php
als Seitenvorlage wie folgt:
add_filter( 'page_template', 'wpa3396_page_template' );
function wpa3396_page_template( $page_template )
{
if ( is_page( 'mypanel' ) ) {
$page_template = dirname( __FILE__ ) . '/includes/mypanel.php';
}
return $page_template;
}
Auf diese Weise wird die Seite angezeigt, aber kein Javascript funktioniert. Also habe ich versucht, das Javascript des Plugins in Funktionen PHP zu importieren.
add_action('wp_enqueue_scripts','Load_Template_Scripts_wpa83855');
function Load_Template_Scripts_wpa83855(){
if ( strpos(get_page_template(), 'mypanel.php') !== false ) {
wp_enqueue_script('wtd', $_SERVER['DOCUMENT_ROOT'].'/wp-content/plugins/myplugin/js/wtd.js');
}
}
Was zu 403 verbotenen Fehlern führte. Ich habe versucht, einen .htaccess-Ordner zur Seite des Plugins hinzuzufügen, aber es gab weiterhin Fehler.
Bitte sagen Sie mir, wie Sie dieses Problem richtig lösen können.
EDIT: Nach einigen Antworten unten (danke an alle). Ich habe meine Codes auf die Seite meines Plugins verschoben und keinen verbotenen Fehler mehr. Aber meine Schaltflächen funktionieren nicht und ich habe das Gefühl, dass meine JS-Datei nicht über die Seite läuft.
Meine js-Datei beginnt mit: jQuery(document).ready(function()
Hier der endgültige Code auf der Plugin-Seite:
/* Make tisort-tasarla page as template */
add_filter( 'page_template', 'wpa3396_page_template' );
function wpa3396_page_template( $page_template )
{
if ( is_page( 'tisort-tasarla' ) ) {
$page_template = dirname( __FILE__ ) . '/includes/tshirt-designer-design-template.php';
}
return $page_template;
}
/* Add Javascript to T-Shirt Design Page */
add_action('wp_enqueue_scripts','Load_Template_Scripts_wpa83855');
function Load_Template_Scripts_wpa83855(){
if ( is_page( 'tisort-tasarla' ) ) {
wp_enqueue_script( 'wtd', plugins_url( '/js/wtd.js' , __FILE__ ), array( 'jquery' ));
}
}
.htaccess
Datei blockiert ? Versuchen Sie auchplugins url()
, den Pfad zu Ihrem Plugins-Verzeichnis abzurufen und zu prüfen, ob dies hilfreich ist.