• Решено mupic

    (@waldub)


    Здравствуйте.
    Я использую плагин Auto more 3 и мне нужно чтобы тег <!--more--> выводился не через определеное количество строк/букв, а в самом начале поста, чтобы скрыть все содержимое (ставить тег самому просто в лом)).
    Подскажите пожалуйста, что нужно подправить?
    Код плагина:

    <?php
    /*
    Plugin Name: Auto_more
    Plugin URI: http://blog.portal.kharkov.ua/
    Description: Автоматическая вставка <!--more--> Если у поста заполнено поле "цитата" (excerpt), будет выведено оно. Плагин требует наличия mbstring расширения php. Использование плагина на говносайтах и сплогах категорически запрещено и карается проклятием.
    Author: Yuri 'Bela' Belotitski
    Version: 3.3 mb_string
    Author URI: http://blog.portal.kharkov.ua/
    */
    
    function auto_more($posts) {
    
     if (is_admin() || is_single() || is_page() || is_feed()) return $posts;
    
     $offset = 1;
    
     $breakpoints = array ("<p" => 0, "</p>" => 4, "<br" => 0, "\x0D\x0A\x0D\x0A" => 0, "\x0A\x0A" => 0,
          "<table" => 0, "</table" => 8, "<ul" => 0, "</ul>" => 5, "<h" => 0 , "</h" => 5 , " " => 1 );
    
     for ($i=0;$i<count($posts);$i++) {
    	if ($posts[$i]->post_excerpt) {
    		$posts[$i]->post_content = $posts[$i]->post_excerpt."\n<!--more-->";
    	}
    	elseif ((strpos($posts[$i]->post_content, '<!--more') === false)
    	 and (strpos($posts[$i]->post_content, '<!--nomore') === false))  {
    
    	      $p = mb_strlen($posts[$i]->post_content,"UTF-8") ;
    	      if ($p > $offset) {
    	      	foreach ($breakpoints as $brp => $o2) {
    				if ($p1 = mb_strpos(mb_strtolower($posts[$i]->post_content,"UTF-8"),$brp,$offset,"UTF-8")) {
    					if ($p > $p1 + $o2) $p = $p1 + $o2;
    				}
    			}
    			if ($p < mb_strlen($posts[$i]->post_content,"UTF-8")) {
    				$posts[$i]->post_content = force_balance_tags(mb_substr($posts[$i]->post_content,0,$p,"UTF-8"))."\n<!--more-->";
    				}
             }
             }
      }
      return $posts;
    }
    
    add_filter('the_posts', 'auto_more', 1);?>

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Юрій

    (@yube)

    1. Убрать плагин за ненадобностью.
    2. В нужном шаблоне убрать the_content() и, если надо, вместо него написать
    <a href="<?php the_permalink(); ?>">Дальше</a>

    Автор mupic

    (@waldub)

    Спасибо большое, я думал что the_content() обязательная функция в шаблоне, и убрать ее не додумался)

    Модератор Юрій

    (@yube)

    🙂 По большому счету, в шаблонах вообще нет ничего обязательного.

    Автор mupic

    (@waldub)

    По большому счету, я что-нибудь из шаблона убрал… И ВСЕ! ВСЕ! Нету рабочего шаблона)))

    waldub у меня этот плагин вообще не работает. Что Вы делаете, чтобы он заработал. В примечании к плагину написано «Плагин требует наличия mbstring расширения php» может с этим связано?

    Автор mupic

    (@waldub)

    Mailfix01, попробуй здесь почитать, может что найдешь — http://n-wp.ru/564

    mbstring? — нет, вряд ли.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Плагин Auto more 3» закрыта для новых ответов.