WordPress:如何使用jQuery从Custom Taxonomy获取自定义字段的元数据

时间:2016-04-20 14:47:29

标签: jquery wordpress custom-post-type custom-fields custom-taxonomy

我已将Custom Post Fields(复选框列表)添加到Custom Taxonomy'product_cat'。

此外,我在自定义帖子类型('产品')添加/编辑页面上有一个自定义Taxtonimies('product_cat')的下拉列表。

如何在自定义分类标准下拉列表更改时使用jQuery从这些自定义字段中获取元数据?

    <script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery('#prodcatoptions').change(function() {
                var productsubcut = jQuery('#prodcatoptions').val();
                if ( productsubcut == '') {
                } else {               
                    var data = {

                        /* I don't know what I need to type here */

                    };
                    jQuery.post(ajaxurl, data, function(response){
                        console.log(response);
                    });
                }    
            });
        });
    </script>

1 个答案:

答案 0 :(得分:1)

为此,您必须向wordpress后端发出ajax请求。例如:

在后端,您将在functions.php文件中具有以下功能

&#13;
&#13;
<?php

function get_custom_meta() {
  global $post; // This only works for admin site
   
  $meta_key = $_GET['key']; # 'key' is the value of the option selected on the selected 

  $data = get_post_meta( $post->ID, $meta_key, true ); # true returns a single value
  echo $data;
  exit;
}
add_action( 'wp_ajax_get_custom_meta', 'get_custom_meta' );
?>
&#13;
&#13;
&#13;

这将返回有关所选分类的元数据。

按如下方式更改您的JavaScript:

&#13;
&#13;
<script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery('#prodcatoptions').change(function() {
                var productsubcut = jQuery('#prodcatoptions').val();
                if ( productsubcut == '') {
                } else {               
                    var data = {

                       action: 'get_custom_meta',
                       key: productsubcut
                    };
                    jQuery.get(ajaxurl, data, function(response){
                        console.log(response);
                    });
                }    
            });
        });
    </script>
&#13;
&#13;
&#13;