可以使用以下命令将变量传递给jQuery或任何javascriptwp_localize_script
.
示例:
add_action( \'template_redirect\', \'prefix_enqueue_vars\' );
function prefix_enqueue_vars() {
$script_vars = array(
\'setting_1\' => get_option( \'some_option\' ),
\'setting_2\' => get_option( \'another_option\' ),
);
wp_enqueue_script( \'my_script\', \'path/to/script.js\', array( \'jquery\' ), true);
wp_localize_script( \'my_script\', \'unique_name\', $script_vars );
}
如何在javascript中获取变量:
jQuery(document).ready(function($) {
$var_1 = unique_name.setting_1
$var_2 = unique_name.setting_2
});
WordPress将在
<sript> </script>
标记,然后将javascript文件排队,以便可以使用它们。
看见wp_localize_script 有关更多信息,请访问WordPress上的Otto。
编辑:
尝试将变量添加到返回值的函数中。我使用的是下面的精确代码,它是有效的。
wp_localize_script( \'cmb-scripts\', \'MaxChar\', array( \'charlimit\' => c3m_get_the_size( $excerpt_length[0] ) ) );
返回以下变量的函数:
function c3m_get_the_size() {
global $post; global $prefix;
$box_size = get_post_meta( $post->ID, $prefix.\'box_size\', true );
if ( $box_size == \'single-single\' ) { $excerpt_length = 150;
} elseif ( $box_size == \'single-double\' ) { $excerpt_length = 150;
} elseif ( $box_size == \'single-triple\' ) { $excerpt_length = 150;
}
return $excerpt_length;
}