0Wordpress LogoMystique 3 Thema: Voll Post und Auszüge

I’ve been try­ing to fig­ure out how to dis­play full posts on the home page, und Auszüge auf allen Archiven für etwa 3 Tage. Das ist schön, weil es eine anständige Menge an jeder Posteinrichtung auf der Titelseite gezeigt, whilst archive pages con­tain a much more con­cise sum­mary of each post. This is bet­ter both for humans, und auch für DIESE — my archive pages now don’t have duplic­ate con­tent from my home page!

I’ve finally pro­duced a solu­tion. It’s not espe­cially eleg­ant, but I’ve been at the very lim­it of my PHP know­ledge just to achieve this meth­od. This applies spe­cific­ally to the Mys­tique 3 Thema, oth­er themes are likely to vary, although some of this inform­a­tion may or may not prove rel­ev­ant. If you are try­ing or suc­ceed in doing the same to a dif­fer­ent theme do drop a com­ment in.

How it currently works

Mys­tique has options which allow the admin to choose wheth­er to dis­play excerpts or full posts. This option is stored as $post_content_mode inside the $options array.

The file archive.php dis­plays the archive and dis­plays each post in a loop via teaser.php

teaser.php has the line

[php]<?php (is_sticky() && is_home()) ? der Inhalt() : $App->Post->Inhalt(); ?>[/php]

This line gen­er­ates the con­tent via a call to the func­tion get­Con­tent in the file AtomObjectPost.php. If this line is com­men­ted the post con­tents dis­ap­pear from archive pages.

The get­Con­tent func­tion loads $options and as a res­ults either calls the_content() or the_excerpt() which are word­press built-in functions.

Die Lösung

I’ve man­aged to achieve what I wish by modi­fy­ing teaser.php — but its a bit of a botch job I think. I just replaced

[php]<?php (is_sticky() && is_home()) ? der Inhalt() : $App->Post->Inhalt(); ?>[/php]

Mit

[php]<?php, wenn(is_home()): ?>
<?php (is_sticky() && is_home()) ? der Inhalt() : $App->Post->Inhalt(); ?>
<?php sonst: ?>
<?php (is_sticky() && is_home()) ? the_excerpt() : $App->Post->Inhalt(‘e’); ?>
<?php endif; ?>[/php]

A better solution?

I would rather imple­ment this solu­tion via an addi­tion to functions.php but I have no idea how to do so. My PHP know­ledge just isn’t good enough.

Leave a Reply