Используйте ajax для обновления мета-сообщений
2 дня назад я спросил об этом затем я попытался поработать над своим кодом, чтобы понять, как работают ajax и php, и теперь у меня есть новая проблема, которая, вероятно, будет легко решена.
Вот мои коды:
<?php
/*
Template Name: Nuovo form
*/
?>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<script>
// wait for the DOM to be loaded
$(document).ready(function() {
// bind 'myForm' and provide a simple callback function
$('#myForm').ajaxForm(function() {
alert("Thank you for your comment!");
});
});
</script>
<?php wp_head();?>
</head>
<body>
<form id="myForm" action="<?php echo get_template_directory_uri();?>/nuovoform/comment.php" method="post">
Name: <input type="text" name="name" />
Comment: <textarea name="comment"></textarea>
<input type="submit" value="Submit Comment" />
</form>
</body>
</html>
Тогда это мой Comment.php
<?php
// This is comment.php content
$nuovoform = 0;
$nuovocommento = 1;
if ( isset( $_POST['name'] )){
$nuovoform = $_POST['name'];}
if ( isset( $_POST['comment'] )){
$nuovocommento = $_POST['comment'];}
update_post_meta($post->ID,'varcontrollo',$nuovoform);
$controlliamo = get_post_meta($post->ID, 'varcontrollo', true);
?>
'varcontrollo' - это пользовательское мета-поле, созданное с помощью плагина шаблона пользовательского поля.
Что я пытаюсь сделать, так это использовать созданную мной форму для хранения результата в моем пользовательском поле. Если я попытаюсь чтобы перейти к comment.php в нем говорится следующее:
Неустранимая ошибка: Вызов неопределенной функции update_post_meta() в D:\Locali\xampp\htdocs\wp-content\themes\slotlandia\nuovoform\comment.php в строке 8
Вероятно, мне придется "импортировать" глобальные переменные WordPress, но я не знаю, что мне нужно написать.
Есть ли кто-нибудь, кто может мне помочь? Большое спасибо.
1 answers
Это не сработает, потому что вы ссылаетесь на один php-файл, а не на всю среду WordPress.
В WordPress есть более простой способ использовать ajax.
Используйте admin_url('admin-ajax')
в качестве действия формы, затем поместите функцию, которая ответит на вызов ajax, в тему functions.php .
Более подробно здесь, в этом ответе