J'ai le modèle de blog suivant avec the_content en sortie. J'ai placé <!--more-->
Cependant, il ne semble pas fonctionner,
http://www.milknhny.co.uk/DVine/?page_id=19
Y a-t-il quelque chose qui doit être inclus dans les fonctions pour que cela fonctionne?
Code de mon modèle de blog
<?php
/*
Template Name: Blog Template
*/
?>
<?php get_header();?>
<?php echo get_the_post_thumbnail($post->ID, 'single-post-thumbnail'); ?>
<div id="maincontentwrap" role="main">
<?php query_posts('showposts=5'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="datebackground"><span class="day"><?php echo get_the_date('j'); ?></span> <span class="month"><?php echo get_the_date('M'); ?></span></div>
<div class="postsh1"><?php echo get_the_title(); ?></div>
<div id="blogwrapper">
Written by <?php the_author_posts_link() ?> in <?php the_category(); ?>
<?php the_content('read more...'); ?>
<br>
<div class="pagedivider"></div>
</div>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
</div><!-- #content -->
<?php get_footer(); ?>
MODIFIER
J'ai trouvé cela dans le thème des Vingt Douze et ive essayé de l'adapter à mon propre cas - l'erreur - le code actuel ...
function DTheme_excerpt_length( $length ) {
return 40;
}
add_filter( 'excerpt_length', 'DTheme_excerpt_length' );
if ( ! function_exists( 'DTheme_continue_reading_link' ) ) :
/**
* Returns a "Continue Reading" link for excerpts
*
* @since Twenty Ten 1.0
* @return string "Continue Reading" link
*/
function DTheme_continue_reading_link() {
return ' <a href="'. get_permalink() . '">' . __( 'Continue reading <span class="meta- nav">→</span>', 'DTheme' ) . '</a>';
}
endif;
/**
* Replaces "[...]" (appended to automatically generated excerpts) with an Ellipsis and twentyten_continue_reading_link().
*
* To override this in a child theme, remove the filter and add your own
* function tied to the excerpt_more filter hook.
*
* @since Twenty Ten 1.0
* @return string An Ellipsis
*/
function DTheme_auto_excerpt_more( $more ) {
return ' …' . DTheme_continue_reading_link();
}
add_filter( 'excerpt_more', 'DTheme_auto_excerpt_more' );
?>
Est-ce un cas où je devrais adapter ce qui précède pour que cela fonctionne?
MODIFIER
Bonjour à tous, cela semble faire partie du travail après l’aide incroyable ci-dessous, mais il n’a toujours pas été affiché dans le contenu et les images par exemple sont en train de redimensionner ... veuillez consulter mon code maintenant et la capture d’écran
<?php get_header(); ?>
<div id="maincontentwrap" role="main">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="datebackground"><span class="day"><?php echo get_the_date('j'); ?></span> <span class="month"><?php echo get_the_date('M'); ?></span></div>
<div class="postsh1"><?php echo get_the_title(); ?></div>
<div id="blogwrapper">
Written by <?php the_author_posts_link() ?> in <?php the_category(); ?>
<?php the_content(); ?>
<br>
<div class="pagedivider"></div>
</div>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
</div><!-- #content -->
<?php get_footer(); ?>
Je vois plusieurs choses qui peuvent contribuer à votre problème.
Tout d'abord, vous utilisez un modèle de page personnalisé pour afficher l'index des articles de blog, au lieu d'utiliser home.php
comme spécifié par la hiérarchie des modèles. Cela pourrait être un problème, car la balise <!--more-->
ne fonctionne pas sur des pages uniques, et puisque vous faites des choses géniales avec la requête par défaut (voir ci-dessous), le $more
global sur lequel <!--more-->
s'appuie peut ne pas être défini comme vous vous attendez à ce qu'il soit.
La première étape consiste donc à configurer correctement une page statique en tant qu'index de publication de blog:
Dashboard -> Settings -> Reading
home.php
Template Name: Blog Template
de l'en-tête phpDocSi cela ne résout pas le problème, le prochain problème à examiner est la façon dont vous écrivez la requête par défaut avec query_posts()
. N'utilisez jamais query_posts()
, pour quoi que ce soit.
Si vous souhaitez que l'index des publications de votre blog affiche un nombre donné de publications, alors filtrez le $query
via pre_get_posts
, comme suit:
function wpse76634_filter_pre_get_posts( $query ) {
if ( is_home() && $query->is_main_query() ) {
$query->set( 'posts_per_page', '5' );
}
}
add_action( 'pre_get_posts', 'wpse76634_filter_pre_get_posts' );
Ensuite, supprimez votre appel à query_posts()
dans le fichier de modèle.
<!--more-->
Si cela ne résout pas votre problème, l'étape suivante consiste à vérifier votre utilisation de la balise <!--more-->
elle-même.
Assurez-vous que la balise est exactement <!--more-->
, sans espaces entre <!--
et more
ou entre more
et -->
.
Si cela ne résout toujours pas votre problème, vous pouvez avoir du code quelque part, soit dans functions.php
, soit dans un plugin, qui modifie la fonctionnalité de la balise <!--more-->
.
Pour rechercher un problème lié au plugin, désactivez tous les plugins, passez au thème par défaut (actuellement: Twenty Twelve) et vérifiez si la balise <!--more-->
fonctionne correctement. Si cela fonctionne correctement, réactivez vos plug-in un par un. Si la balise <!--more-->
fonctionne toujours correctement avec tous les plugins actifs, le problème se situe quelque part dans votre thème.
L'étape suivante consiste à éliminer votre fichier de modèle. Si vous avez suivi les étapes ci-dessus, renommez home.php
en home.php.old
afin que WordPress revienne à index.php
pour afficher l'index des articles du blog. Ensuite, vérifiez si la balise <!--more-->
fonctionne correctement.
Si c'est le cas , le problème vient de votre modèle. Si ce n'est pas le cas , le problème se situe quelque part dans functions.php
.