Ich muss in der Lage sein, etwas PHP in eine externe .js-Datei einzufügen. Ist das möglich? Ich habe einen Schieberegler mit dem einfachen Schieberegler erstellt und muss die Seitentitel als Markierungen oben im Schieberegler haben.
Dies ist der Code, den die .js-Datei verwendet, um die aktuellen Markierungen zu generieren.
var slidenum = key + 1,
var marker = $('<li><a href="#">'+ slidenum +'</a></li>');
Ich muss '+ slidenum +' durch die WordPress-Funktion 'get_title' ersetzen. Kann dies durch PHP ersetzt werden?
5 Antworten
Sie können JS-Variablen in Ihren PHP-Dateien definieren und diese Variablen dann in Ihren externen JS verwenden.
In einer Ihrer PHP-Dateien können Sie beispielsweise Folgendes hinzufügen:
<script type="text/javascript">
// variable1 = number
variable1 = <?php echo $var1; ?>;
// variable2 = string
variable2 = "<?php echo $var2; ?>";
</script>
Und für Ihre Frage:
<script type="text/javascript">
slidenum = "<?php the_title(); ?>";
</script>
The_title () Referenz: http://codex.wordpress.org/Function_Reference/the_title
Update - The Loop:
<?php
$slider_titles = array();
if ( have_posts() ) : while ( have_posts() ) : the_post();
// your codes go here
$slider_titles[] = get_the_title(); // adds the title to the array
endwhile; endif;
?>
<script type="text/javascript">
slidenum = <?php echo json_encode($slider_titles); ?>;
</script>
Wenn Ihre Schleife beendet ist, fügen Sie den Javascript-Teil hinzu
Einige Leute versuchen Ihnen zu sagen, dass Sie Ajax dafür verwenden sollen. Das ist in diesem Fall nicht die Lösung. Die Variable ist für die Lebensdauer des Seitenladens statisch. Sie müssen also immer wieder zum Server zurückkehren, um den Wert abzurufen.
Andere schlagen vor, den Server so einzustellen, dass JS-Dateien als PHP analysiert werden, damit Sie PHP-Code in sie einbetten können. Dies ist auch keine gute Antwort, da Sie die Fähigkeit des Browsers verlieren, die JS-Datei zwischenzuspeichern, was Ihre Site verlangsamt und Ihre Bandbreitenkosten erhöht.
Die Lösung besteht einfach darin, Ihrem Seitenkopf einen separaten Teil des JS-Codes hinzuzufügen - dh Ihrer Seitenvorlage ein kleines <script>
-Tag hinzuzufügen und die betreffende Variable festzulegen.
Auf die Variable kann dann in jedem JS-Code, den Sie an anderer Stelle auf der Seite ausführen, als global zugegriffen werden.
Eine andere Lösung, meiner Meinung nach nicht die beste, besteht darin, Apache anzuweisen, js-Dateien als PHP-Dateien zu analysieren. Fügen Sie dies einfach in Ihre .htaccess-Datei ein:
AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>
Ja, Sie können slidenum durch get_title ersetzen. Nein, Sie können dies weder mit Javascript noch zur Laufzeit tun. Dafür müssen Sie AJAX verwenden.
Nicht direkt. Sie können durch ein paar Reifen springen, um es zu erledigen.
Das Problem ist, dass .js von PHP überhaupt nicht interpretiert wird.
Wenn Sie müssen, können Sie mod_rewrite und dergleichen verwenden, um so zu tun, als wäre Ihr PHP-Skript tatsächlich eine .js.
Oder schreiben Sie die js-Datei von PHP vollständig in das Dateisystem.
Oder verwenden Sie XHR (Ajax), um einen bestimmten Wert abzurufen.
Verwandte Fragen
Neue Fragen
php
PHP ist eine weit verbreitete, übergeordnete, dynamische, objektorientierte und interpretierte Skriptsprache, die hauptsächlich für die serverseitige Webentwicklung entwickelt wurde. Wird für Fragen zur PHP-Sprache verwendet.