使用wp_INSERT_POST时的POST_CONTENT问题

时间:2014-03-12 作者:user48840

我有一个很奇怪的问题,非常感谢你的帮助。

当用户提交帖子时,我正在使用wp\\u insert\\u post。当我提交表单(即wordpress站点的管理员)时,它可以正常工作,但当我尝试与其他用户进行相同操作(即不同的电子邮件,而不是wordpress站点的管理员)时,它只显示我在post\\u内容字段中使用的部分内容。

我的代码:

$my_post = array(
\'post_title\'    => \'My bet\',
\'post_content\'  => \'<form action="" method="post" id=form_id>\' . \'bet ID: \' . \'<input readonly id=betid     type=text value=\' . $bet_id . \'>\' . \'<input id=url name=urlpath type=hidden value=>\' . \'</form>\' ."\\r\\n match: " . \'<span id=match>\' . $_POST[event] . \'</span>\' . "\\r\\n" . $current_user->user_login . "\'s Pick: " . $_POST[bet] . \'</span>\' . \'<span id=friends>\' . \'</span>\' ."\\r\\n Amount: " . \'<span id=amount>\' . $_POST[amount] . \'</span>\' . "<?php include(\'wp-content/themes/twentyfourteen/test.php\') ?>"
\'post_status\'   => \'publish\');
当为wordpress admin用户(用户ID=1)执行时,它工作正常。当为任何其他用户(用户ID!=1)执行时,它不会显示表单的输入字段,更重要的是,不包括测试。php我已经包括在内。

1 个回复
最合适的回答,由SO网友:krike 整理而成

为什么不使用短代码?在该页面的内容中添加短代码,然后创建一个函数来显示该表单并包含php文件。

id为1的用户始终是超级用户/管理员。我不确定,但在向帖子添加内容时,可能会对其他用户进行严格的验证(这只是一个猜测)。但是使用短代码应该没有问题。

因此,您应该得到:(您应该为每个变量添加一个属性,我想并不是所有变量都添加了)

$my_post = array(
\'post_title\'    => \'My bet\',
\'post_content\'  => \'[showform event="\' . $_POST[event] . \'" amount="\' . $_POST[amount] . \'" bet_id="\' . $bet_id . \'"][showform]\',
\'post_status\'   => \'publish\');
您可以在代码的其他地方添加:

add_shortcode(\'showform\', \'showForm\');

function showForm() {
extract( shortcode_atts( array(
        \'event\' => \'default event\',
        \'amount\' => 20,//default amount
             \'bet_id\' => 0
    ), $atts ) );
echo \'<form action="" method="post" id=form_id>\' . \'bet ID: \' . \'<input readonly id=betid     type=text value=\' . $bet_id . \'>\' . \'<input id=url name=urlpath type=hidden value=>\' . \'</form>\' ."\\r\\n match: " . \'<span id=match>\' . $event . \'</span>\' . "\\r\\n" . $current_user->user_login . "\'s Pick: " . $_POST[bet] . \'</span>\' . \'<span id=friends>\' . \'</span>\' ."\\r\\n Amount: " . \'<span id=amount>\' . $amount . \'</span>\';

include(\'wp-content/themes/twentyfourteen/test.php\');
}
如果在函数中添加了shortcode函数。php主题您只需执行以下操作:

include(\'test.php\');

结束

相关推荐