在脚本文件中获取php var(制作插件)

时间:2016-05-05 作者:Met El Idrissi

我正在制作一个插件,我有一个javascript文件,我想在其中获取一些保存在数据库中的选项,以便很好地显示该功能。

所以我有这个:

function wp_home(){

    wp_enqueue_script( \'some-name-1\', \'//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js\', \'1.0.0\', true );
    wp_enqueue_style( \'some-name-2\', plugins_url( \'assets/jquery.something.css\', __FILE__ ) );
    wp_enqueue_script( \'some-name-3\', plugins_url( \'assets/jquery.something.js\', __FILE__ ), \'1.0.0\', true );



        global $table_prefix;
        $dbh = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
        $table = $table_prefix.\'options\';
        $qd = "SELECT option_value FROM $table WHERE option_name = \'description\'";

        $description = $dbh->get_results( $query_link );

        $description = $description[0]->option_value;

      //HERE I HAVE THE STRING OF $description AND I WANT TO PASS INSIDE TO CUSTOM-JS-PHP

     wp_enqueue_script( \'custom-name-js\', plugins_url( \'assets/custom-js.php\', __FILE__ ), \'1.0.0\', true );

}
文件自定义js。php是这样的:

     <?php header("Content-type: text/javascript"); ?>


        $(document).ready(function(){
            $.showBox({
                message: \'<?php echo $description; ?>\',
            });
        });
我如何接受$描述?如果我将javascript放入wp\\u home()中,它将无法工作。

谢谢

2 个回复
SO网友:Andrew Bartel

您可以使用wp_localize_script() 将php变量传递给javascript。您可以在php中创建一个数组,然后将其作为第三个参数传递给函数。它将作为您使用第二个参数命名的对象。

首先,注册脚本。

wp_register_script( \'custom-name-js\', plugins_url( \'assets/custom-js.php\', __FILE__ ) );

其次,构建阵列并运行wp\\u localize。

$my_array = array( \'description\' => $description[0]->option_value );
wp_localize_script( \'custom-name-js\', \'js_object_name\', $my_array );
最后,将脚本排队。

wp_enqueue_script( \'custom-name-js\' );
然后,在js文件中,将有一个名为js\\u object\\u name(或作为第二个参数传递给wp\\u localize\\u script的任何内容)的js对象,该对象的属性为description。

js_object_name.description

SO网友:Manu

您可以尝试此功能:wp_localize_script( $handle, $name, $data );

看见https://codex.wordpress.org/Function_Reference/wp_localize_script 用于文档。

正如法典所说:

虽然本地化是主要用途,但它可以用于使脚本中的任何数据可用,而这些数据通常只能从WordPress的服务器端获取。

我不得不将其用于翻译/本地化,但它似乎可以帮助您将动态值“注入”到javascript中。