ugnc

Контактная форма без плагина для WordPress

Здравствуйте! Пытаюсь создать страницу-контактную форму без использования плагина. Код есть вписал:
Это я вставляю в начале файла contacts.php:

<?php
/*
Template Name: Contacts
*/
?>
<?php
if(isset($_POST['submitted'])) {
    if(trim($_POST['contactName']) === '') {
        $nameError = 'Пожалуйста, введите имя.';
        $hasError = true;
    } else {
        $name = trim($_POST['contactName']);
    }

    if(trim($_POST['email']) === '')  {
        $emailError = 'Пожалуйста, введите E-Mail адрес.';
        $hasError = true;
    } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
        $emailError = 'Вы ввели неправильный E-Mail адрес.';
        $hasError = true;
    } else {
        $email = trim($_POST['email']);
    }

    if(trim($_POST['comments']) === '') {
        $commentError = 'Пожалуйста, введите текст сообщения.';
        $hasError = true;
    } else {
        if(function_exists('stripslashes')) {
            $comments = stripslashes(trim($_POST['comments']));
        } else {
            $comments = trim($_POST['comments']);
        }
    }

    if(!isset($hasError)) {
        $emailTo = get_option('tz_email');
        if (!isset($emailTo) || ($emailTo == '') ){
            $emailTo = get_option('admin_email');
        }
        $subject = '[PHP Snippets] From '.$name;
        $body = "Name: $name \n\nEmail: $email \n\nComments: $comments";
        $headers = 'From: '.$name.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;

        mail($emailTo, $subject, $body, $headers);
        $emailSent = true;
    }

} ?>

<?php get_header(); ?>

И сама контактная форма:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
            <div id="contact-form" class="three_fourth last_column">
                <h5>Отправить сообщение</h5>
<?php if(isset($emailSent) && $emailSent == true) { ?>
<div class="success">Спасибо, ваш сообщение успешно отправлено.</div>
<?php } else { ?>
<?php if(isset($hasError) || isset($captchaError)) { ?>
<div class="error">Извините, произошла ошибка.</div></br>
<?php } ?>
                <form action="<?php the_permalink(); ?>" id="contact-form" method="post">
                    <div class="one_fourth">
                        <fieldset>
                            <label>Имя<span class="required">*</span></label>
                            <input type="text" name="name" id="Myname" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="text requiredField"/>
<?php if($nameError != '') { ?>
<div class="error"><?=$nameError;?></div>
<?php } ?>
                        </fieldset>
                    </div>
                    <div class="one_fourth">
                        <fieldset>
                            <label>E-mail<span class="required">*</span></label>
                            <input type="text" name="email" id="myemail" value="<?php if(isset($_POST['email']))  echo $_POST['email'];?>" class="text requiredField email"/>
<?php if($emailError != '') { ?>
<div class="error"><?=$emailError;?></div>
<?php } ?>
                        </fieldset>
                    </div>
                    <div class="one_fourth last_column">
                    <fieldset>
                        <label>Тема<span class="required">*</span></label>
                        <input type="text" name="subject" id="mySubject" value="" class="text requiredField subject"/>
                    </fieldset>
                    </div>
                    <div class="three_fourth">
                    <fieldset>
                        <label>Ваше сообщение<span class="required">*</span></label>
                        <textarea name="message" id="Mymessage" rows="20" cols="30" class="text requiredField"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
<?php if($commentError != '') { ?>
<div class="error"><?=$commentError;?></div>
<?php } ?>
                    </fieldset>
                    </div>
                    <div class="one_fourth">
                        <fieldset>
                            <input name="Mysubmitted" id="Mysubmitted" value="Отправить сообщение" class="small-button" type="submit"/>
                        </fieldset>
                    </div>
                    <input type="hidden" name="submitted" id="submitted" value="true" />
                </form>
<?php } ?>
            </div>
            <!--CONTACT FORM ENDS-->
<?php endwhile; endif; ?>

Но почему-то при отправке вылазит ошибка 404 (404.php)

Помогите пожалуйста, как исправить??

Проблема с кодировкой UTF-8 vs ?

Вобщем такая проблема. Поставил wordpress в отдельную папку на сервере ‘blog’. В папке там же лежит .htaccess с содержимым:

DirectoryIndex index.php
AddDefaultCharset utf-8

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

# END WordPress

В корень же сайта закинул html файл с примерным содержимым:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Сайт</title>

<meta name="keywords" content="сайт, о сайте"/>
<meta name="description" content="О сайте" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
........

.htaccess в корне:

DirectoryIndex index.html
AddDefaultCharset utf-8
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.site\.ru
RewriteRule ^(.*)$ http://site.ru/$1 [R=permanent,L]

Вопрос: блин что не так?? В случае с wordpress все отлично! Кодировка нормальная, а вот когда смотришь статичные html файлы то кракозябры… (все файлы проверял в notepad2 все в UTF-8 без ВОМ…

Syntax error, unexpected T_IF in

Ребята, не пойму в чем дело. В общем добавляю в functions.php информацию о сайдбарах:

if ( function_exists('register_sidebars') )
register_sidebars(2);

if ( function_exists('register_sidebar') )
register_sidebar(array('name'=>'right_sidebar',
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '',
));

if ( function_exists('register_sidebar') )
register_sidebar(array('name'=>'footer_sidebar',
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '',
));

Так у меня сайт обваливается с ошибкой: Parse error: syntax error, unexpected T_IF in C:\xampp\htdocs\wordpress\wp-content\themes\theme\functions.php on line 3

Как быть? Второй день не пойму в чем дело…

ППЦ, оказывается сразу после <?php стояла >, которую я не щамечал. извинияюсь.

wp_list_pages и preg_replace

Здравствуйте! Я совсем новичок в этом деле. У меня возник вопрос, прошу помочь форумчан.

В общем мне нужно изменить вывод wp_list_pages. Как известно, он выводит свои классы <li class page_item page-item-* > и <li class current_page_item>. Так вот я хочу здесь удалить все page_item’ы и вместо current_page_item вставить просто current. Для этого использую следующий код, но он не работает (просто ничего не выводит, кроме ссылки на главную):

<?php
    echo '<ul class="menu">';
    echo '  <li><a href="' . get_option('home') . '">Главная</a></li>';
    $patterns = array();
    $patterns[0] = '/\<li class="page_item[^>]*>/';
    $patterns[1] = 'current_page_item';
    $replacements = array();
    $replacements[0] = '<li>';
    $replacements[1] = 'current';
    $list_pages = wp_list_pages('title_li=&depth=1&echo=0');
    $list_pages = preg_replace($patterns, $replacements, $list_pages);
    echo $list_pages;
    echo '</ul>';
    ?>

Что я не так делаю?

Есть идея, как реализовать?

Вобщем необходимо на сайте создать некую базу чтоле, или что-то типа того.

Вобще при выводе поста (single.php) в сайдбаре я хочу выводить список, наподобие:

Новости о [здесь берется название товара из произвольного поля 'tovar']
Купить [здесь ссылка на то место, где можно купить 'tovar']
Производитель [здесь ссылка на описание производителя]

Причем они должны быть кликобельны. Проблема в том, что товаров много, а каждыйраз заполнять произвольные поля трудновато, их много…. Я хочу сделать что-то вроде такого: чтобы бралось значение из одного произвольного поля ‘tovar’ и автоматом в сайдбаре выводились ссылочки, которые будут браться из какойто базы ‘tovar’а.

Как реализовать? не могу додумать сам.
p.s. я не профи.

Anonymous
Отправить
Ответ на: