我正在构建一个短代码,用一些预先保存的变量替换[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)?还是我错过了别的什么?谢谢!
答案 0 :(得分:0)
$ user_id未在函数中定义。
[^a-z]*[a-z]
感谢您的帮助!我已经打了好几个小时了