是否通过短码插入PHP代码?

时间:2011-06-16 作者:jilseego

我想通过短代码插入一个带有一行PHP代码的表单。我想知道是否允许?有人试过吗?以以下内容为例:

function get_form($atts) {
    return \'<form method="post" action="">
            <input type="input" name="myinput" value=""></input>
            <input type="hidden" name="myvar" value="<?php echo $current_user->ID; ?>">
            </form>\';
}
add_shortcode(\'myshortcode\', \'get_form\');
我希望现在一切都清楚了。。。

2 个回复
最合适的回答,由SO网友:John P Bloch 整理而成

$current_user 未在该函数的作用域中声明。您希望修改代码,使其更像这样:

function get_form($atts) {
    $current_user = wp_get_current_user();
    return \'<form method="post" action="">
            <input type="input" name="myinput" value=""></input>
            <input type="hidden" name="myvar" value="\' . $current_user->ID . \'">
            </form>\';
}
add_shortcode(\'myshortcode\', \'get_form\');

SO网友:Bainternet

不,那不行!

您需要以字符串/html的形式返回所有值:

function get_form($atts) {
    return \'<form method="post" action="">
            <input type="input" name="myinput" value=""></input>
            <input type="hidden" name="myvar" value="\'.$current_user->ID.\'">
            </form>\';
}
add_shortcode(\'myshortcode\', \'get_form\');

结束

相关推荐

Nested Shortcode Detection

如果您熟悉此代码<?php $pattern = get_shortcode_regex(); preg_match(\'/\'.$pattern.\'/s\', $posts[0]->post_content, $matches); if (is_array($matches) && $matches[2] == \'YOURSHORTCODE\') { //shortcode is being used }&#