2017-08-05 5 views
0

私はポストやページのID(ポストやページIDではない)に基づいてビデオを表示するためのショートコードを生成する "ビデオ"カスタムポストタイプを持っています。どのようにWordPressのカスタムポストタイプのIDを取得するには?

[wpsv_video_shortcodeのID =「86」]

ビデオカスタムポストタイプのIDに基づいて

、私が使用してJavaScriptを使用して映像幅&高さを変更するためにフェッチ/ wp_postmetaデータベースからデータを取得する必要があります"plugin.php"の値を外部のJavaScriptに渡すための "wp_localize_script()"。

しかし、ビデオのカスタム投稿タイプ(投稿やページに表示される)のIDを取得できません。私はいくつかの参考文献を読んで、global $post; $post->IDを試しましたが、うまくいきません。

助けてください。

function wpsv_load_scripts() { 
 
    global $post; 
 
    $wpsv_save_metadata = get_post_meta($post->ID); 
 
    $wpsv_video_width = $wpsv_save_metadata['wpsv_video_width'][0]; 
 
    $wpsv_video_height = $wpsv_save_metadata['wpsv_video_height'][0]; 
 

 
    wp_enqueue_script('wpsv_plugin_frontend_js', plugin_dir_url(__FILE__) . 'js/wpsv-front-end-script.js'); 
 
    wp_localize_script('wpsv_plugin_frontend_js', 'wpsv_js_value', array(
 
     'width' => __($wpsv_video_width, 'wpsv'), 
 
     'height' => __($wpsv_video_height, 'wpsv'), 
 
    ) 
 
); 
 
    
 
} 
 
add_action('wp_enqueue_scripts', 'wpsv_load_scripts');

答えて

0

いただきありがとうございます。このために解決策を見つけました。これを達成するにはいくつかの方法があります。最も重要な部分は、PHPがバックエンドを処理し、JSがフロントエンドを処理することを理解することです。だから、JSはIDを取得するために直接DBと対話することはできません。なぜwpのprovideo wp_localize_script()関数です。

最初の解決策は、PHPファイル(現在jsファイルにエコーしている)に幅と高さをエコーすることです。第2の解決策は、隠された要素を使用して、JSファイルにデータを渡すことである。

<input type="hidden" id="myvar" value="'.$wpsv_video_width.'"> 

又は

<p id="myvar" class="'.$wpsv_video_width.'" style="display:none"></p> 

又は

<p id="myvar" class="'.$wpsv_video_width.'" style="visibility:hidden"></p> 
関連する問題