繁体   English   中英

在Wordpress LaTeX短代码中用变量替换字符串

[英]Replacing string with variable in wordpress LaTeX shortcode

我正在构建一个短代码,使用一些预先保存的变量替换[LaTex]短代码中的某些文本。

输入的简码为:

[dynamic_latex][latex s=3]Q1A^{2}+5=Q1B[/latex][/dynamic_latex]

其中Q1A和Q1B应该用存储的用户元替换。

function latex_find_repalce($atts, $content, $tag) {
    global $random_coefficient_A;
    global $random_coefficient_B;
    $new_LaTeX = str_replace('$a', $random_coefficient_A, $content);
    $new_LaTeX = str_replace('$b', $random_coefficient_B, $new_LaTeX);

    $keys = ['Q1A', 'Q1B', 'Q1C', 'Q1D', 'Q1E', 'Q1F', 'Q1G', 'Q2A', 'Q2B', 'Q2C', 'Q2D', 'Q2E', 'Q2F', 'Q2G', 'Q3A', 'Q3B', 'Q3C', 'Q3D', 'Q3E', 'Q3F', 'Q3G']; //Add as many as needed

    foreach($keys as $key) {
        $question_key = "key_{$key}"; //The key for the stored number 
        $replace_meta = get_user_meta( $user_id, $question_key, true );
        $new_LaTeX = str_replace($key, $replace_meta, $new_LaTeX);

    }//foreach

return '<span>' . do_shortcode($new_LaTeX) . '</span>';

}
add_shortcode('dynamic_latex', 'latex_find_repalce');

似乎删除了有问题的密钥,但是没有替换任何东西,而是将其留为空白。 如何用存储变量正确替换密钥(Q1A)? 还是我想念其他东西? 谢谢!

$ user_id未在函数中定义。

$user_id = get_current_user_id();

谢谢您的帮助! 我已经战斗了好几个小时

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM