0Wordpress LogoMystique 3 Thème: Full-poste et extraits

I’ve been try­ing to fig­ure out how to dis­play full posts on the home page, and excerpts on all archives for about 3 days. This is nice because it means a decent amount of each post is shown on the front page, whilst archive pages con­tain a much more con­cise sum­mary of each post. This is bet­ter both for humans, and also for CET — 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 thème, 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()) ? the_content() : $app->post->teneur(); ?>[/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.

La solution

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()) ? the_content() : $app->post->teneur(); ?>[/php]

Avec

[php]<?php si(is_home()): ?>
<?php (is_sticky() && is_home()) ? the_content() : $app->post->teneur(); ?>
<?php autre: ?>
<?php (is_sticky() && is_home()) ? the_excerpt() : $app->post->teneur(‘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.

Laisser un commentaire