Ich frage mich, ob es eine Möglichkeit gibt, meine Wordpress-Anhang Link innerhalb einer Javascript-Funktion zu setzen. In einfachen Worten, wäre es wie so funktioniert:Wordpress PHP Link innerhalb Javascript (für Photoswipe benutzerdefinierte Aktie URL)
$attach_url = "<?php echo wp_get_attachment_url(); ?>";
function() {
return $attach_url;
}
Genauer gesagt, ich bin nach einer Möglichkeit, es mit Photoswipe Anteil Tasten (Source Code here) zu implementieren:
$attach_url = = "<?php echo wp_get_attachment_url(); ?>";
(this, function() {
'use strict';
var PhotoSwipeUI_Default =
function(pswp, framework) {
shareButtons: [
{url:'https://www.facebook.com/sharer/sharer.php?u={{attachment_pg_url}}'},
],
getAttachmentPageURL: function (shareButtonData) {
return $attach_url;},
parseShareButtonOut: function(shareButtonData, shareButtonOut) {
return shareButtonOut;
},
_updateShareURLs = function() {
var shareButtonOut = '',
shareButtonData,
shareURL,
attachment_pg_url;
for(var i = 0; i < _options.shareButtons.length; i++) {
shareButtonData = _options.shareButtons[i];
attachment_pg_url = _options.getAttachmentPageURL(shareButtonData);
shareURL = shareButtonData.url.replace('{{attachment_pg_url}}', attachment_pg_url);
Jede Hilfe wird sehr geschätzt!
EDIT
Hier ist meine aktualisierte Code, der fast arbeitet. Die js-Datei interpretiert das Enqueue-Skript aus functions.php. Die angezeigte URL ist jedoch <?php echo get_attachment_link(); ?>
und nicht der tatsächliche Link (z. B. home.com/attachment-page), der korrekt angezeigt wird, wenn ich diesen PHP-Code in der Schleife verwende.
Wie kann ich die URL erhalten, um einen Link auszugeben, nicht den tatsächlichen PHP-Code?
In functions.php:
// Custom Photoswipe Share URL
wp_enqueue_script('photoswipe_custom_share_link', get_template_directory_uri() . '/custom_path_here/photoswipe-ui-single-item.js');
$attach_url = "<?php echo get_attachment_link(); ?>";
wp_localize_script('photoswipe_custom_share_link', 'pswp_custom_share', $attach_url);
In der Photoswipe js-Datei (mit einigen zusätzlichen Korrekturen von meiner ursprünglichen Post):
EDIT
machte ich den Fehler Verwenden von Anführungszeichen in meinem Enqueue-Skript. Mit dem folgenden Code ist die Formatierung jetzt korrekt. Das einzige Problem ist, dass die URL-Ausgabe "home.com" statt "home.com/attachment-page" ist.
Wie kann ich die dynamisch generierte Anhangseite außerhalb der Schleife definieren? Muss ich es echo?
$attach_url = get_attachment_link($attachment->ID);
BEARBEITEN - LÖSEN!
Ich musste JavaScript Enqueue verwenden, um Basis-URL der Anlage in der Schleife zu erhalten. (Basierend auf der Antwort here und mit der Hilfe des Diktierers).
In functions.php:
// Custom Photoswipe Share URL
function pswp_custom_share()
{
/* Get the ID of the current post */
global $post;
$ID = $post->ID;
/* register the script */
wp_register_script('photoswipe_custom_share_link', get_template_directory_uri() . 'custom_path_here/photoswipe-ui-single-item.js', array('jquery'), false, true);
$attach_url = array(
'attachment_page' => get_attachment_link($ID)
);
wp_enqueue_script('photoswipe_custom_share_link');
wp_localize_script('photoswipe_custom_share_link', 'attach_url', $attach_url);
}
/* If we're not in the admin section call our function on the wp_enqueue_scripts hook */
if (!is_admin()) add_action("wp_enqueue_scripts", "pswp_custom_share", 10);
In der Photoswipe js-Datei:
getAttachmentURLForShare: function (/*shareButtonData */) {
return attach_url.attachment_page;
},
Also sollte ich diesen Code in functions.php verwenden: 'wp_enqueue_script; ('photoswipe_custom_share_link', get_template_directory_uri() '/custom_path_here/photoswipe-ui-single-item.js'.) $ attach_url = " Php echo wp_get_attachment_url();?>"; wp_localize_script ('photoswipe_custom_share_link', 'pswp_custom_share', $ attach_url); ' Und dann in meinem Javascript Referenz als:' getAttachmentPageURL: function (shareButtonData) { return pswp_custom_share;} '? – BlueHelmet
Ja sollte es so funktionieren .. bitte versuchen Sie es mich wissen, wenn es funktioniert .. – thedarkcoder
Danke, es funktioniert, obwohl es den PHP-Code selbst ausgibt, anstatt einen Link. Meine vollständige Bearbeitung ist oben. – BlueHelmet