webForumDet fria alternativet

Wordpress, ta bort [...] i RSS flödet

Webbutveckling

6 svar · 831 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Hej,

Har ett gäng bloggar som jag ska läsa in på en sajt genom RSS. Bloggarna är Wordpress och där visas en del av varje inlägg i RSS flödet.

När texten bryts visas [...] och jag skulle vilja visa fullständiga inlägg och ta bort [...]

Jag har gjort det förut men kommer inte ihåg hur, nu har jag letat igenom alla filer men hittar verkligen inte hur jag ska lösa det här.

Kör senaste (2.7.1) Wordpress.

Tack!

Medlem sedan juli 20044 453 inlägg
#2

Är det dina bloggar? Isf ställer du in detta via Settings/read och sedan klicka i att visa hela texten. Vissa templates styr detta direkt i sina egna inställningar och då får du leta efter inställningen direkt i filerna istället. Jag tror den heter rss_use_excerpt eller liknande.

Är det andras bloggar kan du inte göra något eftersom de i sina inställningar styrt det till enbart summary.

Medlem sedan feb. 20034 441 inlägg
#3

Jo, det är "mina" bloggar, eller jag är admin överallt, så jag kan göra vad jag vill när det gäller både inställningar och direkt i filerna.

Ser nu att "Full text" redan är markerat (och inte summary) men allt visas ändå inte.
I vilken fil/var tar jag bort "[...]", jag har letat igenom _alla_ filer som heter något i stil med "rss, feed" osv. men hittar inte.

Det sjuka är att jag vet att jag gjort det här förut.

Medlem sedan feb. 20034 441 inlägg
#4

Den här funktionen finns i wp-includes/feed.php:

function the_content_rss($more_link_text='(more...)', $stripteaser=0, $more_file='', $cut = 0, $encode_html = 0) {
	$content = get_the_content($more_link_text, $stripteaser, $more_file);
	$content = apply_filters('the_content_rss', $content);
	if ( $cut && !$encode_html )
		$encode_html = 2;
	if ( 1== $encode_html ) {
		$content = wp_specialchars($content);
		$cut = 0;
	} elseif ( 0 == $encode_html ) {
		$content = make_url_footnote($content);
	} elseif ( 2 == $encode_html ) {
		$content = strip_tags($content);
	}
	if ( $cut ) {
		$blah = explode(' ', $content);
		if ( count($blah) > $cut ) {
			$k = $cut;
			$use_dotdotdot = 1;
		} else {
			$k = count($blah);
			$use_dotdotdot = 0;
		}

		/** @todo Check performance, might be faster to use array slice instead. */
		for ( $i=0; $i<$k; $i++ )
			$excerpt .= $blah[$i].' ';
		$excerpt .= ($use_dotdotdot) ? '...' : '';
		$content = $excerpt;
	}
	$content = str_replace(']]>', ']]&gt;', $content);
	echo $content;
}

Har testat att ta bort "..." som finns längst ner i funktionen, men det blir ingen skillnad.

Medlem sedan feb. 20034 441 inlägg
#5

Nu ersatte jag get_excerpt_rss() mot get_content() i den fil som formaterar RSS flödet. Det funkar bra, men jag tycker det är sjukt att det inte finns något enklare sätt.

Jag testade att ställa om alternativet "rss_use_excerpt" i databasen, men det blev ingen skillnad.

Medlem sedan feb. 20034 441 inlägg
#6

En annan RSS relaterad fråga.
Läser in RSS från en Wordpress blogg på en sida som går under HTTPS.

Bloggen gör det inte och tack vare det så kommer säkerhetsvarningen upp i Internet Explorer då ett blogoginlägg innehåller bilder.

Kan jag komma runt det här på något sätt? Dvs. att RSS flödet ska använda https istället för http i bildlänkar?

Medlem sedan feb. 20034 441 inlägg
#7

En följdfråga på det här... Om jag nu måste köpa ett certifikat till bloggsidan för att slippa säkerhetsvarningen, kommer det bli någon krock mellan de två certifikaten då?

Bloggen hämtas från en subdomän (blog.domain.com) fast ligger på ett annat webbhotell.

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)