WordPress — Почему моя пользовательская функция вызывается дважды?

Почему моя пользовательская функция вызывается дважды в WordPress?

Например, у меня есть эта функция в functions.php:

function your_function_name() {
if(isset($_POST['your_var'])) {
// return $error;
echo '<p class="alert alert-danger"><span class="close" data-dismiss="alert">&times;</span>  Work NOT submitted! Please correct the error(s) below.</p>';
}
}

Мой шаблон:

<?php
your_function_name();
?>

<form class="form-submission" method="post" action="">

<input type="text" class="form-control" placeholder="Name" name="your_var">
...

Когда форма отправлена, я получаю это <p class="alert alert-danger"><span class="close" data-dismiss="alert">&times;</span> Work NOT submitted! Please correct the error(s) below.</p> дважды на моем экране. Один до HTML-тег и другой находится в правильном месте:

<p class="alert alert-danger"><span class="close" data-dismiss="alert">&times;</span>  Work NOT submitted! Please correct the error(s) below.</p><!DOCTYPE html>
<html lang="en-US" class="no-js">
<head>
....

<p class="alert alert-danger"><span class="close" data-dismiss="alert">&times;</span>  Work NOT submitted! Please correct the error(s) below.</p>

<form class="form-submission" method="post" action="">

<input type="text" class="form-control" placeholder="Name" name="your_var">
...

Первый до HTML-тег должен не существует, но есть! Зачем? Как я могу это исправить?

Я хочу, чтобы сообщение появилось до форма тэг не перед тэгом html.

0

Решение

<?php
if(isset($_POST['submitbuttonname']))
your_function_name();
?>

Попробуйте это, может быть, это работает для вас. В вашем коде функция вызывается два раза: сначала при загрузке страницы, а вторая — при ее вызове. Поэтому дайте условие, что если форма отправлена, то вызовите эту функцию.

0

Другие решения

Следуя этому руководство, просто поместите мой код перед:

<?php
get_header(); ?>

Тогда проблема решена.

0

По вопросам рекламы [email protected]