Я пытаюсь отобразить форму PHP в WordPress. Мне дали следующий код по умолчанию (который указал, что его можно использовать для отображения настраиваемых полей) и отредактировал его, но он все еще не отображает форму 🙁 Я хотел бы выяснить, как легко отобразить это, так как мне нужно добавить настраиваемые поля и я очень новичок в PHP.
/*
* The form for adding custom fields on the options page.
*/
function fcpetition_fieldform($po) {
?>
<form method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>"/>
<input type="radio" name="addfield" value="yes"/>
<input type="dropdown" name="petition_select" value="<?php echo $po; ?>"/>
<input type="dropdown" name="editpetition" value="<?php print $po;?>">
Type: <select name = "fieldtype">
<option value="text">Text box</option>
<option value="select">Drop down box</option>
</select>
Name:<input type="text" name="fieldname"/>
Options:<input type="text" name="options"/>
Publish field <input type="checkbox" name="hide" checked/>
<input type="submit" name="Submit" value="<?php _e("Add","fcpetition")?>"/>
</form>
<?php
}
Оригинальный код без моих правок:
/*
* The form for adding custom fields on the options page.
*/
function fcpetition_fieldform($po) {
?>
<form method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>"/>
<input type="hidden" name="addfield" value="yes"/>
<input type="hidden" name="petition_select" value="<?php echo $po; ?>"/>
<input type="hidden" name="editpetition" value="<?php print $po;?>">
Type: <select name = "fieldtype">
<option value="text">Text box</option>
<option value="select">Drop down box</option>
</select>
Name:<input type="text" name="fieldname"/>
Options:<input type="text" name="options"/>
Publish field <input type="checkbox" name="hide" checked/>
<input type="submit" name="Submit" value="<?php _e("Add","fcpetition")?>"/>
</form>
<?php
}
Я на самом деле не один для размещения HTML, но я думаю, что это WordPress определение того, как это должно быть. Если бы мне пришлось, однако, я бы использовал Heredoc;
function echoForm() {
$html = <<<FORM
// html code here
FORM;
echo $html;
// or
return $html;
}
Эта функция должна выводить / печатать форму HTML, но она не может работать в вашем случае, потому что HTML написан в функции PHP. Функция PHP должна return
/echo
/print
содержимое. Вы также можете использовать heredoc
,
Вам необходимо добавить эту функцию в файл «function.php» папки вашей темы.
Я действительно не понимаю, что вы делаете в атрибуте «действия» <form>
тег. Вы должны указать на «файл действий», который будет обрабатывать эти данные.
Где вы должны положить «файл действий»?
Я обычно создаю файл «action.php» в корне папки WordPress и использую следующее: <form action="action.php" method="post">...</form>
,
Не следует помещать файл действия в папку темы, поскольку он не связан с конкретной темой и не должен обновляться функцией обновления WordPress.