WordPress.org

Support

Support » Plugins and Hacks » more tag hack

more tag hack

  • Hi all!
    I have expirenced some problems while using the “more tag” feature of wordpress 2.5. Specifically, it happens that when I want to use the “more” feature to divide this text:

    <div>
    some text
    
    other text
    </div>

    wordpress produces this output

    <div>
    some text

    which obviously breaks my layout.
    A quirk trick to workaround this problem is this:

    Add this function somewhere in your function.php file (usually located in your own style’s directory, under wp-content/themes/YOURLOOK/functions.php)

    function close_dangling_tags($html){
      #put all opened tags into an array
      preg_match_all("#<([a-z]+)( .*)?(?!/)>#iU",$html,$result);
      $openedtags=$result[1];
      asort($openedtags);
    
      #put all closed tags into an array
      preg_match_all("#</([a-z]+)>#iU",$html,$result);
      $closedtags=$result[1];
      asort($closedtags);  
    
      $len_opened = count($openedtags);
      for($i=0;$i < $len_opened;$i++) {
        if ($openedtags[$i]!="" && !in_array($openedtags[$i],$closedtags)){
          $html .= '</'.$openedtags[$i].'>';
        }
      }
    
      $len_closed = count($closedtags);
      for($i=0;$i < $len_opened;$i++) {
        if ($closedtags[$i]!="" && !in_array($closedtags[$i],$openedtags)){
          $html = '<'.$closedtags[$i].'>' . $html;
        }
      }
    
      return $html;
    }

    And add this lines, where the more tag is causing you problem. You’ll usually have to replace the <?php the_content(); ?> block with the following one, search and replace for it in the file wp-content/themes/YOURLOOK/index.php)

    old block

    <?php the_content(); ?>

    new block

    <?php
    						 ob_start();
    							the_content('(Continua...)');
    					    	$the_content_text = ob_get_contents();
    					    ob_end_clean();
    						echo close_dangling_tags($the_content_text); ?>

    It works. It would be very useful to build up a single plugin based on this hack, if you’d like to do it, then you’re welcome!

    Best regards from Italy,
    Antonio

  • The topic ‘more tag hack’ is closed to new replies.
Skip to toolbar