vernal pool
Mittineague
WordPress widgets.php Hack
Class of '72
Family & Friends
Mittineague Park
Music
Walk Photos
Wildflowers
Scripting
Forums
Home
Blossoming Wildflowers
There are 10 plants in blossom on October the 15th.
Chicory Cichorium intybus blossoms between Jun 28 and Oct 24
Daisy Fleabane Erigeron annuus May 30 to Oct 24
Heart-leaved Aster Aster cordifolius Sep 28 to Oct 24
Lady's Thumb Polygonum persicaria Aug 12 to Oct 20
New England Aster Aster novae-angliae Sep 28 to Oct 18
Nodding Smartweed Polygonum lapathifolium Aug 12 to Oct 22
Red Clover Trifolium pratense May 23 to Oct 24
Sweet Everlasting Gnaphalium obtusifolium Aug 28 to Oct 24
Virgin's Bower Clematis vir....
rss feed

WordPress widgets.php Hack

This hack stops feeds in the WordPress sidebar feed widgets that have different character encodings from causing non-valid mark-up.

I say "hack" because this is NOT a plugin, but involves direct modification of the widgets.php file. If you try this, Please be Sure to Save a Back-up of the original file.

Important* Note* This hack requires the iconv function. From the PHP documentation:

To use functions provided by this module, the PHP binary must be built with the following configure line: --with-iconv[=DIR].

Also, if you are on a Windows or IBM server, or the results are not what you expect, Please read the documentation (actually, it's not a bad idea to read it anyway).

Open the content/plugins/widgets/widgets.php file.

In the widget_rss function find this section of code:

<?php
//php tags needed for highlighter
//.............................
 
      } else {
        $desc = str_replace(array("\n", "\r"), ' ', wp_specialchars(strip_tags(html_entity_decode($item['description'], ENT_QUOTES)), 1));
        $summary = '';
      }
 
//.............................
?>

After the line with the closing curly brace add:

<?php
//php tags needed for highlighter
//.............................
 
      $feed_char_enc = $rss->feed_encoding;
      $board_char_enc = get_bloginfo('charset');
      if($feed_char_enc != $board_char_enc)
      {
        $conv_link = iconv($feed_char_enc, "$board_char_enc//IGNORE", $link);
        $conv_desc = iconv($feed_char_enc, "$board_char_enc//IGNORE", $desc);
        $conv_title = iconv($feed_char_enc, "$board_char_enc//IGNORE", $title);
        $conv_summary = iconv($feed_char_enc, "$board_char_enc//IGNORE", $summary);
        $link = ($conv_link != FALSE) ? $conv_link : $link;
        $desc = ($conv_desc != FALSE) ? $conv_desc : $desc;
        $title = ($conv_title != FALSE) ? $conv_title : $title;
        $summary = ($conv_summary != FALSE) ? $conv_summary : $summary;
      }
 
//.............................
?>

Which will now be before this line:

<?php
//php tags needed for highlighter
//.............................
 
      echo "<li><a class='rsswidget' href='$link' title='$desc'>$title</a>$summary</li>";
 
//.............................
?>

Notice that for the "out charset" I appended the "//IGNORE" string. This removes any characters that can't be converted. This is not entirely desirable, but using the default will result in the converted strings being terminated at the last valid character. A third option is to append the string "//TRANSLIT" instead. You may want to try it, but I found that the converted strings still caused non-valid mark-up.

About - Blog - Sitemap - Contact - Forums - Home 

Wireless devices:
The Wildflower list can be searched from the list serve data available at www.mittineague.com/wildflowers.wml


PHP icon.PEAR icon.MySQL icon.phpBB icon.Sitepoint icon.Valid XHTML 1.0 icon.Valid CSS! icon.Level A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0