argh… i’m twiddling with the same stuff here but no luck – I’m just randomly hacking away at PHP files at this point hoping to find something.
The full text feed in WordPress does actually work correctly. The description tag is always a summary, the full text flag actually controls whether or not the content:encoded is output.
It would be helpful to know what feedreader you are using. I tested some of the most common ones I could find back 5 months ago when working on this thread, and they all worked correctly. Google Reader handles the feed perfectly, for example, although it’s hard to test because of the fact that Google caches feeds.
A feedreader that displays only description and ignores content:encoded will not display the full text of the posts. Problem is that I can’t find any that actually do that. Firefox’s feed display will do that, but then it’s not really a feedreader.
Referring to Otto’s earlier fix, here is full code from wp-rss2.php (actually in wp-includes/feed-rss2.php for me)
<?php if (get_option('rss_use_excerpt')) : ?>
<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
<?php else : ?>
<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
<?php if ( strlen( $post->post_content ) > 0 ) : ?>
<content:encoded><![CDATA[<?php the_content() ?>]]></content:encoded>
<?php else : ?>
<content:encoded><![CDATA[<?php the_content() ?>]]></content:encoded>
<?php endif; ?>
<?php endif; ?>
As Otto just said, the description tag is always supposed to be a summary so that’s not a problem. The content should be in content:encoded, which is written if get_option(‘rss_use_excerpt’)) returns false. If you look at the actual feed source, for some reason, there’s no content:encoded, indicating that get_option(‘rss_use_excerpt’)) is returning true when it shouldn’t.
An easy fix, if you don’t mind not having the option of using excerpts, is to simply get rid of the excerpt check.
So just replace above code with this
<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
<?php if ( strlen( $post->post_content ) > 0 ) : ?>
<content:encoded><![CDATA[<?php the_content() ?>]]></content:encoded>
<?php else : ?>
<content:encoded><![CDATA[<?php the_content() ?>]]></content:encoded>
<?php endif; ?>
`