Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Лексиум (анонсы блога профессионального web-мастера) Как отобразить количество подстраниц в WordPress


В последнее время заметил, что 90% сайтов делаю на системе управления WordPress.

Есть у нее свои плюсы, которые существенно перевешивают минусы.

Минусы устраняются ручками. Так что если надо сделать нечто выходящее за функционал, просите спеца.

Недавно на одном из сайтов понадобилось оглавление с подсчетом количества подстраниц.

Стандартными средствами WordPress этого сделать не удалось, а подходящего плагина не нашел.

Написал скрипт:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php if (is_page('8')){ ?>

<p>
<ul class="catogl">
<?php

  $page = $post->ID;
  $children=wp_list_pages('echo=0&child_of='.$page);
  if ($children) {
    $vsevstroke = wp_list_pages('echo=0&depth=2&child_of='.$page.'&title_li=');
  }

  $patterns[0] = "'<li[^>]*?>'si"; //Что заменить

  $replacements[0] = '<li class="catli">'; //На что заменить

  $vsevstroke = preg_replace($patterns, $replacements, $vsevstroke);  //Модифицировал строку

  $mass = explode("\n", $vsevstroke);//Создаю массив с разделителем конец строки

  $flagvivoda = true; //Флаг вывода строки
  $schet = 0; //Начальный счетчик подстраниц


 foreach($mass as $key => $val){

  if(strpos($mass[$key], 'ul class')){$flagvivoda = false;} //Если вижу начало подстраниц - деактивирую флаг вывода строк

  if($flagvivoda){echo $mass[$key];} //Если флаг вывода строк активен - вывожу строку
  if(!$flagvivoda){$schet

В избранное