JavaScript機能の中にWordpressの添付ファイルリンクを入れる方法があるのだろうかと思います。Javascriptの中のWordpress PHPリンク(Photoswipeカスタム共有URL用)
$attach_url = "<?php echo wp_get_attachment_url(); ?>";
function() {
return $attach_url;
}
もっと
は、具体的には、私はPhotoswipeのシェアボタン(完全なソースコードhere)とそれを実装する方法を探しています:
$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);
すべてのヘルプを簡単な言葉で、それはそうのように機能します非常に高く評価されています!
EDIT
ここでほとんど働いている私の更新されたコードは、です。 jsファイルは、functions.phpからエンキュースクリプトを解釈しています。しかし、表示されるURLは実際のリンク(ex:home.com/attachment-page)ではなく、<?php echo get_attachment_link(); ?>
であり、このPHPコードをループで使用すると正しく表示されます。
実際のPHPコードではなく、URLを出力するにはどうすればよいですか? (私のオリジナルのポストからいくつかの余分な修正を)Photoswipe JSファイルで
// 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);
:のfunctions.phpで
EDIT
は私がミスを犯しましたエンキュースクリプトで引用符を使用する方法以下のコードで、書式設定が正しいようになりました。唯一の問題は、url出力が "home.com/attachment-page"ではなく "home.com"であることです。
動的に生成された添付ファイルのページURLをループ外で定義するにはどうすればよいですか?それをエコーする必要はありますか?
$attach_url = get_attachment_link($attachment->ID);
EDIT-SOLVED!
ループ内の添付ファイルのベースURLを取得するには、JavaScriptエンキューを使用する必要がありました。 (回答hereとダークコーダーのヘルプに基づいて)。 functions.phpで
:
Photoswipeのjsファイルで// 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);
:
getAttachmentURLForShare: function (/*shareButtonData */) {
return attach_url.attachment_page;
},
だから私はのfunctions.phpにこのコードを使用する必要があります。 '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); ' そしてとしての私のjavascriptで参照:' getAttachmentPageURL:機能(shareButtonData){ 戻りpswp_custom_share;}、 '? – BlueHelmet
はい、それはうまくいくはずです。試してみてください。うまくいけば教えてください。 – thedarkcoder
リンクではなく、PHPコード自体を出力していますが、ありがとうございます。私の完全な編集は上記です。 – BlueHelmet