我正在尝试将功能添加到Twig模板语言中,该功能打包为AlexaCRM Wordpress插件“集成动力学”的一部分。
浏览了插件代码后,我认为我需要使用“ wordpresscrm_after_twig_ready”钩子来挂起函数定义。但是,Twig似乎忽略了我的功能(当我尝试使用该功能时出现错误)。
有人可以指出正确的方向来找出我做错了什么吗?我对Wordpress非常方便,但是对Twig来说我是新手。我认为这是定义函数的正确方法,但如有必要,我愿意尝试其他方法。谢谢!
挂钩看起来像这样:
do_action( 'wordpresscrm_after_twig_ready', $twigEnv );
位置:/wp-content/plugins/integration-dynamics/src/Shortcode/Twig.php
我的代码如下:
function bespoke_twig( $twigEnv ) { $urlifyFunction = new \Twig_SimpleFunction( 'urlify', function( $string ) { return bespoke_urlify( $string ); } ); $twigEnv->addFunction( $urlifyFunction ); return $twigEnv; } add_action('wordpresscrm_after_twig_ready', 'bespoke_twig', 10, 1);
位置:functions.php(在同一文件中定义了“ bespoke_urlify()”)。
错误看起来像这样:
Template syntax error: Unknown "urlify" function in "template" at line 1.