PHP в WordPress. Что нужно знать?

Весь WordPress написан на PHP. Поэтому для того, чтобы создавать или редактировать темы, или писать плагины, вам нужно знать некоторые вещи.

На моем блоге также есть пост про использование MySQL в WordPress — о том, как правильно создавать запросы, используя предназначенный для этого класс $wpdb.

Переменные:

В PHP перед именем переменной ставится знак доллара.

$x
$hi_people
$g123

Действия с переменными
Обычные действия: присвоение, сложение, умножение, деление, вычитание.

$privet='привет чуваки!';
$r = 1; $go = 4;
$r = $r + $go;
$r = 4 + $r / 5;
$r = 2 * ($r - $go);
$r++; // это означает $r=$r+1;
$r--; // $r=$r-1;

Не забывайте в конце каждого действия в PHP ставить точку с запятой, иначе вылезет ошибка.

Если поставить два слеша в коде // или решетку #, то всё, что идёт после них до конца строки учитываться не будет, это комментарии, которые можно ставить для удобства.

Объединение переменных:

$privet = 'привет';
$znak = '!'
$result = $privet . ' чуваки' . $znak; // $result будет равно 'привет чуваки!'
$result = $privet . $znak; // теперь $result будет равно 'привет!'

Функции:

Функции в PHP выглядят следующим образом:

название_функции(параметры);

В PHP и в WordPress уже существует набор готовых функций, которые удобно использовать при создании блога. Также вы можете задавать и свои функции:

function название_функции(параметры){
	выполняющийся код;
}

Примеры:

Функция echo выводит на экран то, что указано в ней, иногда пишется со скобками, но я пишу без.

$privet = 'привет'; // для удобства зададим переменную
echo 'привет'; // выведет привет
echo $privet; // привет
echo $privet . ' чуваки'; // привет чуваки
echo '$privet чуваки'; // $privet чуваки
echo "$privet чуваки"; // привет чуваки
// видите разницу между двойными и одинарными кавычками? В одинарных кавычках переменные воспринимаются как текст, а в двойных как переменные.

Вот так всё это можно засунуть в HTML-код:

<h1><?php echo $privet ?></h1>

Зададим собственную функцию:

function privet(){
echo 'привет';
}

После того, как функция задана (в WordPress они все обычно задаются в файле functions.php в темах), её можно использовать в любой части сайта сколько угодно раз:

<h1><?php privet(); ?></h1><span><?php privet(); ?></span>

Теперь создадим функцию с параметрами:

function hello($m,$n){
echo $m . ' ' . $n; // кавычки здесь нужны, чтобы вывести пробел между словами
}
// пример выполнения
$privet = 'привет';
$dude = 'чуваки!';
hello($privet, $dude); // после того, как начинает действовать функция, эти переменные превращаются в $m и $n в том же порядке, в котором указаны

Параметры $m, $n существуют только внутри функции, то есть под конец они уничтожаются, поэтому перед тем, как функция закончится, их надо либо вывести, либо сохранить их значения в других переменных. Для этого существует функция return

function hello($m,$n){
$m = $m . ' ' . $n;
return $m;
}

Пример выполнения 1.

$privet = 'привет';
$dude = 'чуваки!';
$result = hello($privet, $dude); // $result будет присвоено значение $m
echo $result;

Пример выполнения 2, результат будет одинаковый.

$privet = 'привет';
$dude = 'чуваки!';
echo hello($privet, $dude); // получается echo $m;

Также существуют такие вещи как return true и return false — это логическое ДА и логическое НЕТ.

Условия:

if (условие) {
	действие;
} elseif (условие) { // второе условие, в случае, если первое не выполняется
	действие;
} else { // в случае если ни одно из условий выше не выполняется
	действие;
}

Примеры:

if($x == 2) echo $x; // если $x равен 2
// если действие только одно, то фигурные скобки можно не ставить
if($x != 2) echo $x; // если $x не равен 2
if($x < 2) echo $x;
if($x > 2) echo $x;
if($x <= 2) echo $x; // если $x меньше или равно 2
if($x >= 2) echo $x; // если $x больше или равно 2
if($x) echo $x; // если $x существует и не равен нулю
if(isset($x)) echo $x; // если $x существует и возможно равен нулю
if(!$x) echo $x; // если $x не существует, но возможно равен нулю
if(!isset($x)) echo $x; // если $x не существует и не равен нулю

Несколько условий:

if($x==2 && $y < $x) echo $y; // если $x равен двум И (должны выполняться одновременно оба условия) $y меньше $x
if($x==2 || $y < $x) echo $y; // если ИЛИ $x равен двум ИЛИ (получается должно выполняться хотя бы одно условие) $y меньше $x

Пример посложнее:

if(isset($result)) {
	if($result<5) {
		echo '$result = '.$result.'<br />';
		echo 'значение переменной меньше 5';
	} elseif ($result>5) {
		echo '$result = '.$result.'<br />';
		echo 'значение переменной больше 5';
	} else echo 'значение переменной равно 5'; 
} else echo '$result не существует';

Циклы

Есть несколько видов циклов, но нам пока будет достаточно самого распространённого:

while(условие){ // до тех пор пока условие выполняется, действие будет повторяться
	действие;
}

Пример:

$result=0;
while($result<5) {
	echo $result; $result++;
} // в результате этот код выведет цифру 01234

Альтернативные записи условий и циклов

В WordPress всё это часто записывается в другом виде, но смысл остаётся тем же:

if(условия) :
	действия;
elseif(условия) :
	действия;
else :
	действия;
endif; // конец условия
while(условия) :
	действия;
endwhile; // конец цикла

Примеры на этот пункт вы найдёте практически в любой теме для WordPress.

Подпишитесь, чтобы раз в неделю получать свежие статьи с блога по email.

Смотрите также

Комментарии 104

  • Даниил1 января 2013 в 16:01 #

    Спасибо!
    Как раз очень нужная мне статья!
    Еще раз спасибо

  • Александр17 ноября 2013 в 14:11 #

    Скажите пожалуйста, а как устранить не равномерное расстояние между словами ? Заранее благодарен

    • Миша17 ноября 2013 в 14:11 #

      через стили, например:

      p{
      	text-align: left; /* выравнивание по левому краю */
      }
      p{
      	text-align: right; /* выравнивание по правому краю */
      }
      p{
      	text-align: center; /* выравнивание по центру */
      }
  • Александр17 ноября 2013 в 15:11 #

    Спасибо большое ! Но я имею ввиду, расстояние между словами Оно то маленькое, то большое, то никакое

  • Александр17 ноября 2013 в 15:11 #

    Вот здесь http://mironpage.ru/?p=424

  • Александр17 ноября 2013 в 16:11 #

    а где ? в css ?

  • Александр17 ноября 2013 в 16:11 #

    Все ! Разобрался Дай Бог Вам удачи ! Спасибо !

  • Артем2 августа 2014 в 20:08 #

    Приветствую! Подскажите, пожалуйста. Мне необходимо вывести через функцию ссылку на главную страницу.
    Я сначала задаю переменную

    $x = true

    А потом через условие пытаюсь вывести ссылку, если переменная $x = true

    if ($x) {
    	echo home_url();}

    Но как из этой конструкции сделать именно ссылку не представляю, потому как мне возвращается просто урл, а надо именно ссылку
    Перепробовал разные варианты, но постоянно выдает ошибку

    • Миша2 августа 2014 в 22:08 #

      Добрый день!

      echo '<a href="' . home_url() . '">' . home_url() . '</a>';
      • Артем3 августа 2014 в 17:08 #

        Огромное спасибо! Заработало!
        Это я не правильно синтаксис писал.
        А подскажите, точка до и точка после вот здесь . home_url() . что означает?

  • Владимир1 декабря 2014 в 21:12 #

    Здравствуйте Миша, может Вы поможете, я начинающий и не всё еще понимаю, хочу выводить на главной статьи, вернее цитаты с миниатюрами всех статей подряд, хотелось бы по категориям:
    наименование 1 категории;
    несколько миниатюр с цитатами.
    Наименование 2 категории;
    несколько мини, и так далее, всего 8 категорий. Они есть в сайдбаре но хотелось бы вот так, помогите пожалуйста

    • Миша1 декабря 2014 в 21:12 #

      Добрый день!
      Могу подсказать по функциям: get_terms(), get_the_post_thumbnail() и класс WP_Query.

      • Владимир1 декабря 2014 в 22:12 #

        Я кажись не туда написал, но все равно задам вопрос еще раз, с миниатюрами я вроде разобрался, но они будут идти все подряд а я хочу по категориям, как это сделать и как прописать наименования категорий над ними, в сайдбаре они есть но я хочу на главной, помогите пожалуйста

  • Владимир2 декабря 2014 в 22:12 #

    Миша доброго времени суток, может я уже надоел, извините, но нужна помощь, у меня в шаблоне чужая форма контактов, я её скопировал, но выдаёт у меня она выдает ошибку не знаю как переделать, не хотелось бы её терять так как уже много перепробовал и всё не то, а эта вроде ничего, но не знаю как её переделать под свой шаблон, сможете помочь.

  • Владимир2 декабря 2014 в 22:12 #
    <?php
    /*
    Template Name: Contact
    */
    ?>
     
    <?php get_header();?>
     
    <?php
     
     if(isset($_POST['submitted'])) {
        if(trim($_POST['contact_name']) === '') {
            $nameError = 'Введите ваше имя';
            $hasError = true;
        } else {
            $name = trim($_POST['contact_name']);
        }
     
        if(trim($_POST['contact_email']) === '')  {
            $emailError = 'Введите e-mail адрес';
            $hasError = true;
        } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['contact_email']))) {
            $emailError = 'Вы ввели неправильный адрес.';
            $hasError = true;
        } else {
            $email = trim($_POST['contact_email']);
        }
     
        if(trim($_POST['contact_theme']) === '') {
            $themeError = 'Введите тему ';
            $hasError = true;
        } else {
            $theme = trim($_POST['contact_theme']);
        }
     
        if(trim($_POST['contact_comments']) === '') {
            $commentError = 'Введите сообщение';
            $hasError = true;
        } else {
            if(function_exists('stripslashes')) {
                $comments = stripslashes(trim($_POST['contact_comments']));
            } else {
                $comments = trim($_POST['contact_comments']);
            }
        }
     
        if(!isset($hasError)) {
            $emailTo = get_option('tz_email');
            if (!isset($emailTo) || ($emailTo == '') ){
                $emailTo = get_option('admin_email');
            }
            $subject = 'Сообщение с сайта от '.$name;
            $body = "Имя: $name \n\nE-mail: $email \n\nТема: $theme \n\nСообщение: $comments";
            $headers = 'From: '.$name.' <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email;
            wp_mail($emailTo, $subject, $body, $headers);
            $emailSent = true;
        }
     
    } ?>
     
    <section id="content"><!-- content -->
    	<div class="wrapper">
    		<article id="main_content">
    		<div class="mainphoto-page"><?php if(has_post_thumbnail( )){the_post_thumbnail('article_main_photo');}?></div>
    			<?php while ( have_posts() ) : the_post(); ?>
     
    			<?php the_content(); ?>
     
                          <div id="contact_form">
                               <?php if(isset($emailSent) && $emailSent == true) { ?>
                                     <div class="contact_message">Ваше сообщение успешно отправлено!!</div>
                               <?php } else { ?>
                                     <?php if(isset($hasError) || isset($captchaError)) { ?>
     
                                     <?php } ?>
     
                                     <form action="<?php the_permalink(); ?>" id="contactForm" method="post">
     
                                           <div class="contact_left">
                                                <div class="contact_name">
                                                     <input type="text" placeholder="Ваше имя" name="contact_name" id="contact_name" value="<?php if(isset($_POST['contact_name'])) echo $_POST['contact_name'];?>" class="required requiredField" />
                                                     <?php if($nameError != '') { ?>
                                                           <div class="errors"><?=$nameError;?></div>
                                                     <?php } ?>
                                                </div>
                                                <div class="contact_email">
                                                     <input type="text" placeholder="Ваш email" name="contact_email" id="contact_email" value="<?php if(isset($_POST['contact_email']))  echo $_POST['contact_email'];?>" class="required requiredField email" />
                                                     <?php if($emailError != '') { ?>
                                                           <div class="errors"><?=$emailError;?></div>
                                                     <?php } ?>
                                                </div>
                                                <div class="contact_theme">
                                                     <input type="text" placeholder="Тема" name="contact_theme" id="contact_theme" value="<?php if(isset($_POST['contact_theme'])) echo $_POST['contact_theme'];?>" class="required requiredField" />
                                                     <?php if($themeError != '') { ?>
                                                           <div class="errors"><?=$themeError;?></div>
                                                     <?php } ?>
                                                </div>
                                           </div>
     
                                           <div class="contact_right">
                                                <div class="contact_textarea">
                                                     <textarea placeholder="Сообщение" name="contact_comments" id="commentsText" rows="12" cols="56" class="required requiredField"><?php if(isset($_POST['contact_comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['contact_comments']); } else { echo $_POST['contact_comments']; } } ?></textarea>
                                                     <?php if($commentError != '') { ?>
                                                           <div class="errors"><?=$commentError;?></div>
                                                     <?php } ?>
                                                </div>
     
                                                <button type="contsubmit" class="contact_submit">Отправить</button>
                                                <input type="hidden" name="submitted" id="submitted" value="true" />
                                           </div>
                                     </form>
                               <?php } ?>
                          </div>
     
     
    			<?php endwhile; ?> 
    		</article>
    		<?php get_sidebar(); ?>
    		<div class="c-b"></div>	
    </section>	
    	</div><!--End .wrapper-->
    </section><!--End #content-->
    <?php get_footer();?>
    Выдаёт ошибку и указывает на 82, 88, 94 и 103 строки, я смотрел там написано эррор, пожалуйста помогите, я в этом не разбираюсь, пока только учусь.
    • Миша2 декабря 2014 в 22:12 #

      Здравствуйте!
      Меняем

      <?=$nameError;?>

      на

      <?php echo $nameError; ?>

      И так каждую из строк.

    • Артем2 декабря 2014 в 22:12 #

      Могу и ошибаться, но по моему здесь синтаксическая ошибка

      <div class="errors"><?=$commentError;?></div>

      Должно быть так

      <div class="errors"><?php $commentError; ?></div>
      • Миша2 декабря 2014 в 22:12 #

        Артём, спасибо за комментарий.

        Синтаксической ошибки тут нет, просто не все версии PHP поддерживают такую конструкцию. Это аналог функции echo.

        Правильный вариант:

        <div class="errors"><?php echo $commentError; ?></div>
        • Артем2 декабря 2014 в 22:12 #

          Ну я тоже еще ламер в пхп и просто не знал что так можно записывать. Так что, это вам спасибо.
          Если вы не против, тогда подскажите, пожалуйста, как можно проверить, что переменная не пуста? Точнее не так, у меня в переменные введены данные по умолчанию, но при вставке шорткода, эти данные не подставляются. Вот я и думаю где проблема - в пхп или в js
          Код вот такой

          function artabr_youtube_video( $atts) {  
              extract(shortcode_atts( array(  
                  'urlvideo' => '',
          		'namevideo' => '',
          		'desc' => '',
          		'duration' => 'PT3M10S',
          		'upld' => '',
          		'isFamilyFriendly' => 'true',
          		'tmburl' => '',
          		'thumbnailwidth' => '',
          		'thumbnailheight' => '',
          		'display' => 'none',
          		'id' => $query['v'],  
                  'width' => '640',  
                  'height' => '360',
          		'position'   => 'left'
              ), $atts));  
          	$VideoObject = 'itemprop="video" itemscope itemtype="http://schema.org/VideoObject"';
          	$itemurl = 'itemprop="url"';
          	$itemname = 'itemprop="name"';
          	$itemdesc = 'itemprop="description"';
          	$itemduration = 'itemprop="duration"';
          	$itemFamily = 'itemprop="isFamilyFriendly"';
          	$itemuploadDate = 'itemprop="uploadDate"';
          	$itemthumb = 'itemprop="thumbnail" itemscope itemtype="http://schema.org/ImageObject"';
          	$itemimg = 'itemprop="contentUrl"';
          	$itemwidth = 'itemprop="width"';
          	$itemheight = 'itemprop="height"';
           
              $out = "<div class=\"art_yt " .$position . "\"" . $VideoObject . "><div class=\"visib " .$display . "\"><a " . $itemurl . "href=\"" .$urlvideo . "\"></a><span " . $itemname . ">" . $namevideo. "</span><span " .  $itemdesc . ">" . $desc. "</span><meta " . $itemduration  ." content=\"".$duration."\"/><meta " . $itemFamily ." content=\"".$isFamilyFriendly."\"/>";
          	$out .= '<meta ' . $itemuploadDate . '  content="'.$upld.'"/>';
          	$out .= '<span ' . $itemthumb . '>';
          	$out .= '<img ' . $itemimg  . ' src="'. $tmburl . '"/>';
          	$out .= '<meta ' . $itemwidth . ' content="'.$thumbnailwidth. '"/><meta ' . $itemheight . ' content="'.$thumbnailheight.'"/></span></div>';
           
          	$out .= '<iframe width="' .$width . '" height="' .$height .'" src="http://www.youtube.com/embed/' . $id . '?controls=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe></div>';
           
          return $out;
          }  
          add_shortcode('art_yt', 'artabr_youtube_video');

          В переменные $width и $height должны подставляться значения 640 и 360 соответственно.
          Заранее благодарю за ответ

        • Владимир3 декабря 2014 в 00:12 #

          Миша спасибо, а как быть с иф,

        • Владимир3 декабря 2014 в 00:12 #

          Миша ничего не изменилось, те же ошибки, но указывают они на иф, перед теми строчками что вы порекомендовали заменить, блин и не знаю что делать.

          <?php if($nameError != '') { ?>

          Вот на эту строку указывает, что в ней не так, но не знаю что.

          • Миша3 декабря 2014 в 06:12 #

            А названия-то ошибок какие?

            • Владимир3 декабря 2014 в 09:12 #

              Здравствуйте, это ошибки на заполнение имени, адреса и темы:

              Notice: Undefined variable: nameError in /home/v/vladimu2/nicegreen.com.ua/public_html/wp-content/themes/mithemes/contact.php on line 82

              Notice: Undefined variable: emailError in /home/v/vladimu2/nicegreen.com.ua/public_html/wp-content/themes/mithemes/contact.php on line 88

              Notice: Undefined variable: themeError in /home/v/vladimu2/nicegreen.com.ua/public_html/wp-content/themes/mithemes/contact.php on line 94

              А вот это на форму поля текста:

              Notice: Undefined variable: commentError in /home/v/vladimu2/nicegreen.com.ua/public_html/wp-content/themes/mithemes/contact.php on line 103

            • Владимир3 декабря 2014 в 09:12 #

              О что то не то, я скопировал ошибки а их не показало, счас исправлю:

              82 ошибка - <?php if($nameError != '') { ?> 88 - <?php if($emailError != '') { ?> 94 - <?php if($themeError != '') { ?> 103 - <?php if($commentError != '') { ?>
            • Владимир3 декабря 2014 в 09:12 #

              Такая же ошибка и с формой комментирования статей, привожу её ниже:
              Notice: Undefined variable: req in /home/v/vladimu2/nicegreen.com.ua/public_html/wp-content/themes/mithemes/single.php on line 77 Notice: Undefined variable: aria_req in /home/v/vladimu2/nicegreen.com.ua/public_html/wp-content/themes/mithemes/single.php on line 77 Notice: Undefined variable: req in /home/v/vladimu2/nicegreen.com.ua/public_html/wp-content/themes/mithemes/single.php on line 81 Notice: Undefined variable: aria_req in /home/v/vladimu2/nicegreen.com.ua/public_html/wp-content/themes/mithemes/single.php on line 82

              77 -  '<p class="comment-form-author">'.( $req ? '<span class="required">*</span>' : '' ).'<input id="author" name="author" type="text" placeholder="ИМЯ" value="' . esc_attr( $commenter['comment_author'] ) .'" size="30"' . $aria_req . ' /></p>',
               81 - ( $req ? '<span class="required">*</span>' : '' ) .
              82 - '<input id="email" name="email" type="text" placeholder="E-MAIL" value="' . esc_attr(  $commenter['comment_author_email'] ) .'" size="30"' . $aria_req . ' /></p>',
              • Миша3 декабря 2014 в 11:12 #

                простое решение — находим в файле wp-config.php строку и убеждаемся, что она равна false:

                define('WP_DEBUG', false);
                • Владимир3 декабря 2014 в 11:12 #

                  А не помешает это другим функциям

                • Владимир3 декабря 2014 в 11:12 #

                  Миша огромное спасибо, всё получилось, буду всем рекомендовать рекомендовать именно Вас в вопросах ПХП, еще раз спасибо и удачи в работе

                  • Миша3 декабря 2014 в 12:12 #

                    Рад помочь)

                    Вам тоже удачи.

                    • Владимир3 декабря 2014 в 23:12 #

                      Миша привет, я опять по твою помощь, вроде уже всё сделал, всё работает, только не могу уменьшить миниатюру, всюду задано 178, на 178 пх, и в функтионс и в самом индексе, помоги пожалуйста, скидываю копии:
                      Это индекс ПХП

                      <section id="content"><!-- content -->
                      	<div class="wrapper">
                      		<article id="index_post_list_div">
                      			<ul id="list_of_article">
                      				<?php if(have_posts()):?>
                      				<?php while(have_posts()):the_post();?>
                      					<li>
                      						<div class="include_date">
                      							<span><?php the_time('j'); ?></span>
                      							<i><?php rus_month();?></i>
                      							<b><?php the_time('g:i'); ?></b>
                      						</div>
                                                                            <figure class="line_block_about">
                      					                <!--<span class="author_line_block_about">Автор:</span>
                      					                <i><?php the_post(); the_author(); ?></i>-->
                       
                                                                                <a href="<?php the_permalink() ?>#new_comment_block" class="amount_of_comments"><?php comments_number('Комментариев нет','1 Комментарий','% Комментариев') ?></a>
                      						</figure>
                       
                                                                      <a href="<?php the_permalink(); ?>" class="article_name">
                      							<?php the_title(); ?>
                      						</a>
                       
                      			<?php if(has_post_thumbnail()) {the_post_thumbnail('178,178');}?>
                                                                   <?php the_excerpt();?>
                       
                      						<span class="the_excerpt">
                       
                      							<a href="<?php echo get_permalink(); ?>">Читать далее</a>
                      						</span>

                      А это функтионс ПХП

                      <?php 
                      if ( function_exists( 'add_theme_support' ) ) {
                        add_theme_support( 'post-thumbnails' );
                        add_image_size( 'article_main_photo', 178, 178, true );
                        add_image_size( 'banner_img_right', 240, 400, true );
                       }

                      Помоги пожалуйста, заранее благодарю.

                    • Владимир3 декабря 2014 в 23:12 #

                      И еще, я нашел повторения миниатюр, в четырех файлах, и мне кажется что надо убрать значение мое фото, попробую так сделать может получится

                    • Миша4 декабря 2014 в 06:12 #

                      Привет,
                      в functions.php меняешь циферки на те, которые нужно, а внутри функции the_post_thumbnail указываешь название размера:

                      the_post_thumbnail('article_main_photo');
                    • Владимир4 декабря 2014 в 09:12 #

                      Приветствую Миша, ничего не получилось, к тому же перестало обрезать статью, выводит её полностью, хотя в конце её пишет читать далее, пипец я уже запутался вообще

                    • Владимир4 декабря 2014 в 10:12 #

                      Миша добавлю еще кое что, в рубриках же статьи так же должны быть с миниатюрой и анонсом, но их нету, выставляются статьи полностью, хотя внизу пишет = читать далее =

                    • Владимир4 декабря 2014 в 10:12 #

                      С миниатюрами вроде бы разобрался, но анонсами не получается, так и выставляет целиком всюду и на главной и в рубриках.

                    • Владимир4 декабря 2014 в 10:12 #

                      Короче вместо анонса идет целая статья под миниатюрой, хотя внизу написано =читать далее=

                    • Владимир4 декабря 2014 в 11:12 #

                      Миша скидываю, целиком вес файл индекса, помоги пожалуйста:

                      <?php 
                      /*
                          Template Name: index
                      */
                      get_header();?>	
                       
                      <section id="content"><!-- content -->
                      	<div class="wrapper">
                      		<article id="index_post_list_div">
                      			<ul id="list_of_article">
                      				<?php if(have_posts()):?>
                      				<?php while(have_posts()):the_post();?>
                      					<li>
                      						<div class="include_date">
                      							<span><?php the_time('j'); ?></span>
                      							<i><?php rus_month();?></i>
                      							<b><?php the_time('g:i'); ?></b>
                      						</div>
                                                                            <figure class="line_block_about">
                      					                <span class="author_line_block_about">Автор:</span>
                      					                <i><?php the_post(); the_author(); ?></i>
                       
                                                                                <a href="<?php the_permalink() ?>#new_comment_block" class="amount_of_comments"><?php comments_number('Комментариев нет','1 Комментарий','% Комментариев') ?></a>
                      						</figure>
                       
                                                                      <a href="<?php the_permalink(); ?>" class="article_name"><?php the_title(); ?></a>
                                                                     <?php if(has_post_thumbnail()) {the_post_thumbnail('article_main_photo');} ?>
                       
                                                                     <span class="the_excerpt">
                      						      <?php the_content(''); ?>
                                                                            <div class="chp"><a href="<?php the_permalink(); ?>">Читать далее</a></div>   
                      					       </span>
                       
                       
                                                                              <figure class="labels">
                      							<?php 
                       
                      								$catmy = get_the_category();
                      								$i=0;
                      								if($catmy){
                      									echo "<span>Рубрики: </span><i>";
                      									foreach($catmy as $category) { 
                      									   $tag_links_cat[$i] = '<a href="'.get_category_link($category->term_id).'">'.$category->cat_name.'</a>' ;
                      									   $i++;
                      									} 
                      									 echo join( ', ', $tag_links_cat );
                      								}
                      								else echo "<span></span>
                      							<i>Нет рубрик";
                      							?>
                       
                      							</i>
                       
                      							<a class="hiddenLink" href="<?php the_permalink(); ?>#commentators_block">КОММЕНТЫ</a>
                       
                      						</figure>
                      					</li> 					
                      				<?php endwhile;?>  
                      				<?php endif;?>
                      			</ul>
                      		</article>
                      		<?php get_sidebar(); ?>
                      		<?php wp_corenavi(); ?>	
                       
                      		<div class="c-b"></div>	
                      	</div><!--End .wrapper-->
                      </section><!--End #content-->
                       
                      <?php get_footer();?>
                    • Владимир4 декабря 2014 в 11:12 #

                      Сейчас просматривал функтионс ПХП, возможно что там проблема, но я там боюсь экспериментировать так как уже пару раз пропадал сайт, еле вернул его.

                    • Артем4 декабря 2014 в 12:12 #

                      Владимир! Попробуйте заменить

                      <?php the_content(''); ?>

                      в 30 строке на

                      <?php the_excerpt(); ?>

                      - эта функция как раз и выводит только анонсы.

              • redVi27 декабря 2015 в 19:12 #

                Измените

                if($nameError != '')

                на

                if ( isset( $nameError ) )
  • Артем2 декабря 2014 в 22:12 #

    Соответственно и в других строках надо изменить, если я прав

    • Владимир4 декабря 2014 в 13:12 #

      Извините, я даже не посмотрел кто мне ответил, моя благодарность Вам обоим, и с категориями я разобрался, за них отвечает файл архив, еще раз огромное Вам спасибо ребята, удачи Вам

      • Артем4 декабря 2014 в 13:12 #

        Ничего страшного. Рад был помочь

        • Владимир4 декабря 2014 в 13:12 #

          Я поспешил обрадоваться, как только я вывел анонсы в рубриках они пропали на главной, в чем может быть причина

          • Артем4 декабря 2014 в 13:12 #

            Смотря как у вас главная формируется, если через статичную страницу то надо смотреть файл этой страницы, а если стандартно то надо смотреть файл index.php

            • Владимир4 декабря 2014 в 13:12 #

              Я посмотрел в настройках, у меня галочка стоит на вывод последних записей на главной

            • Владимир4 декабря 2014 в 13:12 #

              Там же есть и статическая страница, но я хочу на главной выводить именно миниатюры с анонсами

            • Владимир4 декабря 2014 в 13:12 #

              Я сейчас попробую переключить на статическую и посмотрю как там всё выводится

            • Владимир4 декабря 2014 в 13:12 #

              Посмотрел, на статической странице пусто, а какой файл отвечает за статическую страницу

              • Артем4 декабря 2014 в 14:12 #

                Если статика пустая значит у вас используется два файла index.php и arhive.php Соответсвенно index отвечает за главную, а архив за страницу рубрик. Получается код будет одинаковым почти что для главной что для рубрик

                • Владимир4 декабря 2014 в 14:12 #

                  Да но я кажись создам файл категории и думаю вопрос отпадет сам собой

                • Владимир4 декабря 2014 в 15:12 #

                  Мужики помогите опять, я создал файл категории туда скопировал всё с архива, ковырял, ковырял но ничего не получается, что то упускаю, а также создал для статической главной паге ПХП, туда скопировал всё с индекса и тоже ничего не получается, скидываю оба:

                  категории ПХП

                  <?php 
                  /*
                      Template Name: index
                  */
                  get_header();?>	
                   
                  <section id="content"><!-- content -->
                  	<div class="wrapper">
                  		<article id="index_post_list_div">
                  			<ul id="list_of_article">
                  				<?php if(have_posts()):?>
                  				<?php while(have_posts()):the_post();?>
                  					<li>
                  						<div class="include_date">
                  							<span><?php the_time('j'); ?></span>
                  							<i><?php rus_month();?></i>
                  							<b><?php the_time('g:i'); ?></b>
                  						</div>
                   
                  						<figure class="line_block_about mybrichka myposition">
                  							<span class="author_line_block_about">Автор:</span>
                  							<i class="addd"><?php the_author(); ?></i>
                  							<a href="<?php the_permalink() ?>#new_comment_block" class="amount_of_comments"><?php comments_number('Комментариев нет','1 Комментарий','% Комментариев') ?></a>
                  						</figure>
                   
                                                                  <a href="<?php the_permalink(); ?>" class="article_name">
                  							<?php the_title(); ?>
                  						</a>
                  						<?php if(has_post_thumbnail( )){the_post_thumbnail('article_main_photo');}?>
                   
                  						<span class="the_excerpt">
                  							<?php the_excerpt(); ?>
                  						</span>
                  						<figure class="labels">
                  							<?php 
                   
                  								$catmy = get_the_category();
                  								$i=0;
                  								if($catmy){
                  									echo "<span>Рубрики: </span><i>";
                  									foreach($catmy as $category) { 
                  									   $tag_links_cat[$i] = '<a href="'.get_category_link($category->term_id).'">'.$category->cat_name.'</a>' ;
                  									   $i++;
                  									}  
                  									 echo join( ', ', $tag_links_cat );
                  								}
                  								else echo "<span></span>
                  							<i>Нет рубрик";
                  							?>
                   
                  							</i>
                  							<a href="<?php the_permalink(); ?>">Читать далее</a>
                  							<a class="hiddenLink" href="<?php the_permalink(); ?>#commentators_block">КОММЕНТЫ</a>
                  						</figure>
                  					</li> 					
                  				<?php endwhile;?>  
                  				<?php endif;?>
                  			</ul>
                  		</article>
                  		<?php get_sidebar(); ?>
                  		<?php wp_corenavi(); ?>	
                   
                  		<div class="c-b"></div>		
                  	</div><!--End .wrapper-->
                  </section><!--End #content-->
                   
                  <?php get_footer();?>

                  Паге ПХП

                  <?php 
                  /*
                      Template Name: index
                  */
                  get_header();?>	
                   
                  <section id="content"><!-- content -->
                  	<div class="wrapper">
                  		<article id="index_post_list_div">
                  			<ul id="list_of_article">
                  				<?php if(have_posts()):?>
                  				<?php while(have_posts()):the_post();?>
                  					<li>
                  						<div class="include_date">
                  							<span><?php the_time('j'); ?></span>
                  							<i><?php rus_month();?></i>
                  							<b><?php the_time('g:i'); ?></b>
                  						</div>
                                                                        <figure class="line_block_about">
                  					                <span class="author_line_block_about">Автор:</span>
                  					                <i><?php the_post(); the_author(); ?></i>
                   
                                                                            <a href="<?php the_permalink() ?>#new_comment_block" class="amount_of_comments"><?php comments_number('Комментариев нет','1 Комментарий','% Комментариев') ?></a>
                  						</figure>
                   
                                                                  <a href="<?php the_permalink(); ?>" class="article_name"><?php the_title(); ?></a>
                                                                 <?php if(has_post_thumbnail()) {the_post_thumbnail('article_main_photo');} ?>
                   
                                                                 <span class="the_excerpt">
                  						      <?php the_content(''); ?>
                                                                        <div class="chp"><a href="<?php the_permalink(); ?>">Читать далее</a></div>   
                  					       </span>
                   
                   
                                                                          <figure class="labels">
                  							<?php 
                   
                  								$catmy = get_the_category();
                  								$i=0;
                  								if($catmy){
                  									echo "<span>Рубрики: </span><i>";
                  									foreach($catmy as $category) { 
                  									   $tag_links_cat[$i] = '<a href="'.get_category_link($category->term_id).'">'.$category->cat_name.'</a>' ;
                  									   $i++;
                  									} 
                  									 echo join( ', ', $tag_links_cat );
                  								}
                  								else echo "<span></span>
                  							<i>Нет рубрик";
                  							?>
                   
                  							</i>
                   
                  							<a class="hiddenLink" href="<?php the_permalink(); ?>#commentators_block">КОММЕНТЫ</a>
                   
                  						</figure>
                  					</li> 					
                  				<?php endwhile;?>  
                  				<?php endif;?>
                  			</ul>
                  		</article>
                  		<?php get_sidebar(); ?>
                  		<?php wp_corenavi(); ?>	
                   
                  		<div class="c-b"></div>	
                  	</div><!--End .wrapper-->
                  </section><!--End #content-->
                   
                  <?php get_footer();?>

                  И в индексном надо вернуть всё как было наверное, что сейчас и буду делать, а с этими двумя помогите пожалуйста.

                  • Артем4 декабря 2014 в 15:12 #

                    Что вы не то делаете... Если вы делаете отдельный файл то и привязывать его надо по другому иначе ВП не понимает.
                    Сделайте проще - в файлах index и arhive воткните одинаковый код и смотрите что получается
                    Должно выводиться одно и тоже

                    • Владимир4 декабря 2014 в 15:12 #

                      Сделал как вы сказали, вообще все тестовые статьи пропали

                    • Артем4 декабря 2014 в 15:12 #

                      Так, давайте с начала, вы когда поменяли

                      <?php the_content(''); ?>

                      это было в каком файле?

                    • Владимир4 декабря 2014 в 15:12 #

                      С категориями вроде разобрался, с главной что то не то, сейчас она уже статическая, то есть правка наверно нужна в паге ПХП

                    • Артем4 декабря 2014 в 16:12 #

                      Да, если у вас статика то править надо на ней. Но... если вы правите page.php, то это не правильно. Верните обратно вывод записей в настройках (отключите статическую страницу) и перенесите код в файл index
                      Иначе, если вы внесете код в page.php то у вас он будет выводить на всех вновь созданных страницах

                      И опять же поменяйте в index.php строку

                      <?php the_content(''); ?>

                      на

                      <?php the_excerpt(); ?>

                      Должно получиться

                    • Владимир4 декабря 2014 в 16:12 #

                      Был в индексе и архиве но когда я поменял и там и там то миниатюры и анонсы пропадали на главной

                    • Владимир4 декабря 2014 в 16:12 #

                      Счас попробую всё вернуть

        • Владимир4 декабря 2014 в 13:12 #

          Что надо сделать чтобы и там и там выводились анонсы

          • Владимир4 декабря 2014 в 16:12 #

            Всё заработало, спасибо большое, больше экспериментировать не буду

            • Артем4 декабря 2014 в 16:12 #

              Пожалуйста

              • Владимир6 декабря 2014 в 09:12 #

                Здравствуйте Артём, я последовал Вашим советам вернул всё назад, всё отлично работает благодаря Вашим и Мишиным советам. Но есть одна проблема, у меня в меню есть кнопка о блоге, в ней была статья и пока я ковырялся с выводом миниатюр с анонсами она пропала, и не пойму на какой стадии, когда именно, черт, теперь не могу разобраться, может посоветуете, как её вернуть. Я попробую создать её по новому но боюсь что будет то же самое, помогите пожалуйста, заранее благодарю

              • Владимир6 декабря 2014 в 10:12 #

                Забыл указать что нажимая на неё, блог пропадает полностью, показывает белый лист, только в адресной строке её название

                • Артем6 декабря 2014 в 12:12 #

                  Добрый день! Скорее всего это у вас ссылка на страницу и если нажимая на нее появляется белый экран, то значит ошибка где-то в файле page.php, который отвечает за вывод страниц и информации на них.
                  Вы же там что-то меняли в нем, проверьте чтобы ошибок не было

                  Хотя так, телепатически сложно выяснить где ошибка

                  • Владимир6 декабря 2014 в 22:12 #

                    Спасибо Артём счас просмотрю проверю

                  • Владимир7 декабря 2014 в 12:12 #

                    Спасибо мужики, да была ошибка, я пока что новичок но уже понимаю что надо проверять себя на ошибки, а то обычная точка с запятой всё портит, ну ничего думаю научусь всему. Еще раз спасибо мужики

                    • Артем7 декабря 2014 в 12:12 #

                      Всегда пожалуйста

  • Владимир11 декабря 2014 в 18:12 #

    Артём, Миша, здравствуйте, благодаря Вашей помощи на моем блоге всё работает как я хотел, но есть одна ошибка, которую я заметил сегодня на чужом компьютере. Хозяин этого компьютера пользуется ИнтернетЕксплорером, я ему рассказывал о вашей помощи мне в отображении анонсов с миниатюрой как мне хотелось. Он решил посмотреть и когда он открыл мой блог через Эксплорер то там оказалось что весь шаблон развален полностью, я знаю что разные браузеры могут по разному отображать интернет-ресурсы но не настолько же. У меня к Вам просьба, если знаете подскажите как это устранить, наверное есть какие то указания для Эксплорера. Заранее благодарю.

    • Артем12 декабря 2014 в 01:12 #

      Это смотря какой IE, если ниже 9 то смысла нет никакого что-то делать. А вот если выше, то тут есть какой-то скрипт, но какой не скажу. Может Михаил подскажет

    • Миша12 декабря 2014 в 07:12 #

      Для начала попробуйте добавить стили display:block для таких элементов, как header, footer, section и так далее.

  • Владимир12 декабря 2014 в 09:12 #

    Здравствуйте, спасибо мужики разобрался сам, это у знакомого ИЕ 6 версии, он прикололся с меня, он его специально держит на одном из своих компьютеров для проверки, он что то там с ним делает. Но я нашел в инете ответ, как задать команду на правильное отображение в старых версиях ИЕ, поставил у себя но пока еще не проверял, проверю, скажу, действует или нет.

  • Владимир4 января 2015 в 12:01 #

    Приветствую Миша и Артём, с Новым годом и Рождеством вас, мужики снова нужна ваша помощь, мне указывает на ошибку в комментах:
    trigger_error( sprintf( __('%1$s is deprecated since version %2$s with no alternative available.'), $file, $version ) . $message );
    Я проверил пишет что функция устаревшая, подскажите что делать.

    • Миша4 января 2015 в 13:01 #

      Привет! Спасибо, и вас!
      Ну если функция устарела, то её нельзя больше использовать, что ещё могу сказать. Поищите альтернативные варианты.

  • Владимир5 января 2015 в 11:01 #

    Привет мужики, у меня опять к вам вопрос: поставил на сайт плагин WordPress Related Posts, всё отлично работает, только под миниатюрами выводит ссылку на правку Edit Related Posts, как её убрать или закрыть от показа а то она портит весь вид.

    • Артем5 января 2015 в 12:01 #

      Насколько я помню, сия ссылка появляется только если на сайт под админом заходишью Посмотрите в другом браузере, если заходит простой пользователь то он этой ссылки не видит

    • Артем5 января 2015 в 12:01 #

      Кстати, этот плагин довольно тяжелый, хотя и возможности у него неплохие, юзал его на своем блоге с полгода, потом снес - сильно нагружает сайт

      • Владимир5 января 2015 в 12:01 #

        Согласен, я находил подобные но все не то, не так отображают похожие посты как я хочу. Может посоветуете другой но с подобным отображением.

        • Артем5 января 2015 в 13:01 #

          Да я совсем не пользуюсь подобными плагинами, у меня данный функционал в шаблоне зашит. Хотя если погуглить можно наковырять или в репозитории смотреть. А какое у вас отображение похожих статей? Как в пинстаграмме с подгрузкой новых?

          • Владимир5 января 2015 в 13:01 #

            Просто в конце каждой статьи 5 миниатюр с наименованием и всё, я бы тоже хотел вшить в шаблон но с миниатюрами, не знаю как

  • Владимир7 января 2015 в 14:01 #

    Мужики поздравляю вас с Рождеством Христовым. У меня еще один вопрос. Мои друзья и знакомые посоветовали сделать страницу, где они могут выкладывать свои новости, фото для обсуждения, посоветуйте как это сделать или скиньте ссылку на ресурс где есть эта тема, а то гугл выкидывает мне что то не то, то есть не всё понимаю. Заранее благодарю.

    • Артем7 января 2015 в 14:01 #

      Вопрос зачем не задаю, видимо так надо))) Если на вордпрессе то сделайте просто регистрацию на сайте и дайте вашим друзьям авторский доступ они смогут и новости добавлять и все что угодно.
      Есть другой вариант, можно сделать что-то вроде небольшой социальной сети, для чего использовать плагины или bbpress или wprecall. Последний плагин поинтереснее будет - и возможности хорошие и весь мануал на русском, да и разработчик наш.

      • Владимир7 января 2015 в 15:01 #

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

        • Артем7 января 2015 в 21:01 #

          Это все зависит от целей вашего сайта, если сайт не заточен под определенную тематику, то можно сделать, но если сайт выполняет определенные задачи, то имеет смысл сделать отдельный.

          Владимир, мы тут с вами Михаилу статью замусорили коментами конкретно))) Если что мой блог artabr.ru там есть все контакты, можно отдельно пообщаться

  • Артем7 января 2015 в 14:01 #

    И вас со всеми праздниками!

  • Роман2 марта 2015 в 01:03 #

    Здравствуйте у меня в вордпрессе после экспериментов с плагинами антибот в комментариях. Форма комментариев не выводится вообще. (какой то плагин прописал что то и где то на пхп). Выдает на этом месте "App is blocked". Все плагины антибота деактивировал и удалил, пхп страницы комментариев скопировал с другого сайта на вордпресс вставил через редактор на этот сайт. Темы на сайте поменял. Не помогло. Неужели заново вордпресс переустанавливать? Подскажите если есть мысли как исправить данный трабл. В пхп я 0

    • Миша2 марта 2015 в 11:03 #

      Добрый день!
      Честно говоря с этим не сталкивался. Попробуйте переустановить — это же недолго.

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • alex morozov: Ура, спасибо! Все-таки я разобрался ! Сделал:

  • alex morozov: Сделал Класс добаляется даже если поле пустое

  • Vladislav: Лучше бы посоветовали изящное решение имеющейся проблемы.

  • alex morozov: Не очень понял. Я добавляю метабокс через класс, почти как у вас. class Desc_Meta_Box { private $screens = array(...

  • Миша: Метод тыка хорош, но оснвоы нужно знать в любом случае. Рекомендую почитать это.