X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

> Вопрос про содержание статьи
vipsol1n
vipsol1n
Topic Starter сообщение 3.9.2013, 10:01; Ответить: vipsol1n
Сообщение #1


Нужно, чтобы содержание статьи показывалось после 1 абзаца, как это сделать ?
Может в плагине что-то изменить?
Движок WP
Вот код плагина содержания:

Развернуть/Свернуть
<?php
/*
Plugin Name: Marafon.Contents
Version: 0.1
*/

define('MK_CONTENTS_DEEPEST_H', 3);
define('MK_CONTENTS_AT_LEAST', 2);

function mk_contents_get_last_ind($id) {
    $pos = strrpos($id, '-');
    if ($pos === false) {
        return false;
    }
    return intval(substr($id, $pos + 1));
}

function mk_contents_truncate_last_ind($id) {
    $pos = strrpos($id, '-');
    if ($pos === false) {
        return false;
    }
    return substr($id, 0, $pos);
}

function mk_contents_increment_last_ind($id) {
    $t = mk_contents_get_last_ind($id);
    if (!$t) {
        return false;
    }
    $id = mk_contents_truncate_last_ind($id);
    $id .= '-' . ($t + 1);
    return $id;
}

function mk_contents ( $content = '' ) {
    if ( is_single() ) {
        if (preg_match_all('|<h([0-9]+)([^>]*)>(.*?)</h|ims', $content, $m)) {

            $n = sizeof($m[0]);

            // Checks for the needed amount of headers.
            $cnt = 0;
            for ($i = 0; $i < $n; $i++) {
                $m[1][$i] = intval($m[1][$i]);
                if ($m[1][$i] <= MK_CONTENTS_DEEPEST_H) {
                    $cnt++;
                }
            }
            if ($cnt < MK_CONTENTS_AT_LEAST) {
                return $content;
            }

            $initial_content = $content; // Saves the initial content of the post. It is returned whenever some error occurs.
            $contents = ''; // For li-elements of the final contents.

            //print_r($m);

            $prev_h = 1;
            $id = 'part';
            for ($i = 0; $i < $n; $i++) {
                $cur_h = $m[1][$i];
                if ($cur_h > MK_CONTENTS_DEEPEST_H) {
                    continue;
                }

                // Defines the id (part-...).
                if ($cur_h > $prev_h) { // deeper level
                    $id .= '-1';
                } elseif ($cur_h == $prev_h) { // the same level
                    $id = mk_contents_increment_last_ind($id);
                } elseif ($cur_h < $prev_h) { // higher level
                    for ($t = 0; $t < $prev_h - $cur_h; $t++) {
                        $id = mk_contents_truncate_last_ind($id);
                    }
                    $id = mk_contents_increment_last_ind($id);
                }
                if (!$id) { // some error
                    return $initial_content;
                }

                // Adds the link to the contents.
                $contents .= '<li class="cont' . $cur_h . '"><a href="#' . $id . '">' . $m[3][$i] . '</a></li>' . "\n";

                // Adds the 'id' attribute to the header.
                /*$content = str_replace(
                    $m[0][$i],
                    '<h' . $m[1][$i] . ' id="' . $id . '"' . $m[2][$i] . '>' . $m[3][$i] . '</h',
                    $content
                );*/

                // Another approach - with anchors (JLady).
                $content = str_replace(
                    $m[0][$i],
                    '<p><a name="'. $id . '"></a></p>' . "\n" . $m[0][$i],
                    $content
                );

                $prev_h = $cur_h;
            }

            $content = '<p><b>Содержание статьи:</b></p>' . "\n\n"
                . '<ul class="contents">' . "\n" . $contents . '</ul>' . "\n\n"
                . $content;

        }
    }
    return $content;
}

add_filter('the_content', 'mk_contents', 10);

?>


Сообщение отредактировал grumdas - 3.9.2013, 10:24
Причина редактирования: убрал код под спойлер
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
 
Открыть тему
Ответов (1 - 4)
arturios
arturios
сообщение 3.9.2013, 10:22; Ответить: arturios
Сообщение #2


вы о чем вообще?
где показывалось?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
seo_talisman
seo_talisman
сообщение 3.9.2013, 10:29; Ответить: seo_talisman
Сообщение #3


Не понял суть вопроса, но возможно ты этого хочешь... Попробуй заменить на это:

Развернуть/Свернуть
<?php
/*
Plugin Name: Marafon.Contents
Version: 0.1
*/

define('MK_CONTENTS_DEEPEST_H', 3);
define('MK_CONTENTS_AT_LEAST', 2);

function mk_contents_get_last_ind($id) {
    $pos = strrpos($id, '-');
    if ($pos === false) {
        return false;
    }
    return intval(substr($id, $pos + 1));
}

function mk_contents_truncate_last_ind($id) {
    $pos = strrpos($id, '-');
    if ($pos === false) {
        return false;
    }
    return substr($id, 0, $pos);
}

function mk_contents_increment_last_ind($id) {
    $t = mk_contents_get_last_ind($id);
    if (!$t) {
        return false;
    }
    $id = mk_contents_truncate_last_ind($id);
    $id .= '-' . ($t + 1);
    return $id;
}

function mk_contents ( $content = '' ) {
    if ( is_single() ) {
        if (preg_match_all('|<h([0-9]+)([^>]*)>(.*?)</h|ims', $content, $m)) {

            $n = sizeof($m[0]);

            // Checks for the needed amount of headers.
            $cnt = 0;
            for ($i = 0; $i < $n; $i++) {
                $m[1][$i] = intval($m[1][$i]);
                if ($m[1][$i] <= MK_CONTENTS_DEEPEST_H) {
                    $cnt++;
                }
            }
            if ($cnt < MK_CONTENTS_AT_LEAST) {
                return $content;
            }

            $initial_content = $content; // Saves the initial content of the post. It is returned whenever some error occurs.
            $contents = ''; // For li-elements of the final contents.

            //print_r($m);

            $prev_h = 1;
            $id = 'part';
            for ($i = 0; $i < $n; $i++) {
                $cur_h = $m[1][$i];
                if ($cur_h > MK_CONTENTS_DEEPEST_H) {
                    continue;
                }

                // Defines the id (part-...).
                if ($cur_h > $prev_h) { // deeper level
                    $id .= '-1';
                } elseif ($cur_h == $prev_h) { // the same level
                    $id = mk_contents_increment_last_ind($id);
                } elseif ($cur_h < $prev_h) { // higher level
                    for ($t = 0; $t < $prev_h - $cur_h; $t++) {
                        $id = mk_contents_truncate_last_ind($id);
                    }
                    $id = mk_contents_increment_last_ind($id);
                }
                if (!$id) { // some error
                    return $initial_content;
                }

                // Adds the link to the contents.
                $contents .= '<li class="cont' . $cur_h . '"><a href="#' . $id . '">' . $m[3][$i] . '</a></li>' . "\n";

                // Adds the 'id' attribute to the header.
                /*$content = str_replace(
                    $m[0][$i],
                    '<h' . $m[1][$i] . ' id="' . $id . '"' . $m[2][$i] . '>' . $m[3][$i] . '</h',
                    $content
                );*/

                // Another approach - with anchors (JLady).
                $content = str_replace(
                    $m[0][$i],
                    '<p><a name="'. $id . '"></a></p>' . "\n" . $m[0][$i],
                    $content
                );

                $prev_h = $cur_h;
            }

            $content = '<p><b>Содержание статьи:</b></p><br>' . "\n\n"
                . '<ul class="contents">' . "\n" . $contents . '</ul>' . "\n\n"
                . $content;

        }
    }
    return $content;
}

add_filter('the_content', 'mk_contents', 10);

?>


Если проблема не решена, пиши. А лучше выложи скриншот проблемы. Чтобы было легче понять суть вопроса и сразу же помочь тебе.

Сообщение отредактировал seo_talisman - 3.9.2013, 10:32


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
vipsol1n
vipsol1n
Topic Starter сообщение 3.9.2013, 13:34; Ответить: vipsol1n
Сообщение #4


arturios, Что не понятного ? Если содержание статьи наверняка в статье должно показываться.
seo_talisman, не помогло

Кароче, плагин который у меня стоит показывает Содержание в статье, и содержание выводится в начале статьи автомотически, что нужно поменять в коде чтобы содержание выводилось не в самом начале статьи а после 1 абзаца.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
tpe3egol
tpe3egol
сообщение 26.10.2013, 2:19; Ответить: tpe3egol
Сообщение #5


Была когда-то такая же нужна. Ответа не нашел, но долго и не искал. Обошелся и без этого happy.gif

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Готовые статьи по тематике кредитования в РФ
(70 штук) от 10 рублей за статью
3 projectadmin 1301 14.4.2024, 13:59
автор: projectadmin
Открытая тема (нет новых ответов) Форум про уток - на новом домене
Форум про уток на новом домене - utkamir.ru
0 artmeteor 574 13.4.2024, 18:26
автор: artmeteor
Открытая тема (нет новых ответов) Куплю статьи с сайтами близкие к бухгалтерии - предлогайте
Сделан сайт по бух услугам, ищу площадки под платное размщение статей
2 areainfo 2832 30.3.2024, 5:03
автор: Llirik
Открытая тема (нет новых ответов) Готовые статьи различной тематики
от 10р\1000 знаков
3 projectadmin 1725 17.2.2024, 10:58
автор: projectadmin
Открытая тема (нет новых ответов) "Извините, что ожидание затянулось, но не думайте, пожалуйста, что мы про вас забыли. Мы заводим задачи по всем обращениям и контролируем работу над ними самым тщательным образом."
Вопрос
0 kuz999 1243 5.2.2024, 14:06
автор: kuz999


 



RSS Текстовая версия Сейчас: 20.4.2024, 8:21
Дизайн