如何将模板页中的变量传递给子主题函数。php

时间:2015-07-24 作者:Brad

我正在寻找一种方法,将自定义Wordpress页面模板中的变量传递给我的子主题函数。php文件。我用错了望远镜,我完全迷路了。我正在尝试使用用户提交的数据在此处生成谷歌地图:http://cheryllynch.com/homevalue/

我是否需要写入mySQL数据库才能执行此操作?我应该停止规则并使用全局变量吗?

<!--HomeValue.php Template-->
$latitude = $xml[$i]->response->results->result->address->latitude; 
$_POST[\'latitude\'];

<!--functions.php--> 
    wp_enqueue_script( //From jqueryui.com copy CDN (or download)
    \'jqueryui\',
    \'//code.jquery.com/ui/1.10.3/jquery-ui.js\',
    array(\'jquery\')
    );  //End of enqueue jQuery UI


    wp_enqueue_script( \'extra js\', get_stylesheet_directory_uri() . \'/js/extra.js\' );

    $datatoBePassed = array(
    \'hvuri\'  => get_stylesheet_directory_uri() . \'/page-homevalue.php\',
    \'latitude\' => __(latitude), 
    \'longitude\' => __(longitude)

    );
    wp_localize_script( \'extra js\', \'gmap_php_vars\', $datatoBePassed );
    }
}
add_action( \'wp_enqueue_scripts\', \'cheryllynch_sheeva_child_scripts\' );

1 个回复
SO网友:s_ha_dum

。。。从自定义Wordpress页面模板到我的子主题函数。php文件。。。

你不能。还有global 变量没有帮助。主题的functions.php 首先加载文件,然后再加载任何其他模板。不能将变量向后传递给已加载的对象。

根据您的代码似乎要执行的操作,我认为您要做的是将数据嵌入模板文件中:

wp_enqueue_script( \'extra js\', get_stylesheet_directory_uri() . \'/js/extra.js\' );

$datatoBePassed = array(
  \'hvuri\'  => get_stylesheet_directory_uri() . \'/page-homevalue.php\',
  \'latitude\' => __(latitude), 
  \'longitude\' => __(longitude)
);
wp_localize_script( \'extra js\', \'gmap_php_vars\', $datatoBePassed );
然后让Javascript通过gmap_php_vars Javascript变量。

概念验证:

function grab_gmap() { ?>
  <script type="text/javascript">
    alert(gmap_php_vars.hvuri); 
  </script><?php
}
add_action(\'wp_footer\',\'grab_gmap\');
实际上,你所做的或多或少与你想要做的相反。

在实践中,您不应该像那样将Javascript插入页面。负责的职能部门可能位于extra.js 您排队的文件。

结束

相关推荐

加载CSS文件的子主题中的Functions.php中断网站

我创建了一个子主题并创建了一个函数。子主题目录中也具有所需样式的php文件。css文件和我要加载的单独自定义css文件。这是我使用的代码:<? php add_action(\'wp_head\', \'add_landing_css\'); function add_landing_css() { wp_enqueue_style(\'landing_css\', get_stylesheet_directory_uri().\'/landing.cs