Cum să faci ca filtrul excerpt_more să se aplice și la excerpt-ul efectiv al postării?
În funcția get_blog_excerpt() de mai jos, filtrul excerpt_more funcționează perfect când excerpt-ul postării nu există, dar când postarea are un excerpt, nu primesc link-ul "Citește mai mult".
Înțeleg că the_excerpt verifică mai întâi dacă există un excerpt pentru postare, ceea ce este în regulă, dar vreau ca link-ul "Citește mai mult" să se aplice și în acest caz.
Ce trebuie să modific pentru ca excerpt_more să se aplice în toate cazurile?
function get_blog_excerpt(){
add_filter('excerpt_length', 'ce4_excerpt_length');
add_filter('excerpt_more', 'ce4_excerpt_more');
return the_excerpt();
}
function ce4_excerpt_length($length) {
return 150;
}
function ce4_excerpt_more($more) {
global $post;
return '...<a href="'. get_permalink($post->ID) . '">Citește mai mult</a>';
}
function get_blog_links(){
global $post;
setup_postdata($post);
$myposts = get_posts($args);echo '<div id="menuFooterRecent" class="blog">';
echo '<ul>';
foreach($myposts as $idx=>$post){ ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php
echo get_blog_excerpt();
echo '<div style="clear:both"> </div>';?></li>
<?php } echo '</ul></div>';
}
Codul de mai sus se află în fișierul functions.php
Codul de mai jos se află în fișierul archive.php
<?php
if(is_category()){
if (get_query_var('cat') == get_category_by_slug('blog')->term_id){
get_blog_links();
}
else
{
get_category_links();
}
} ?>

Presupun că apelezi get_blog_excerpt()
undeva în șablonul tău?
Dacă da, ce se întâmplă dacă apelezi simplu the_excerpt()
, și apoi scoți cele două apeluri add_filter()
din funcția container? Adică functions.php
ar arăta astfel:
function ce4_excerpt_length($length) {
return 150;
}
add_filter('excerpt_length', 'ce4_excerpt_length');
function ce4_excerpt_more($more) {
global $post;
return '...<a href="'. get_permalink($post->ID) . '">Citește mai mult</a>';
}
add_filter('excerpt_more', 'ce4_excerpt_more');
Și în șablonul tău, ai apela simplu the_excerpt()
.
Dacă funcționează, atunci bănuiesc că problema este că filtrele tale nu se aplică - probabil din cauză că sunt încapsulate în funcția container.

Chip, mulțumesc pentru pont. Dar mutarea filtrelor în afara containerului nu pare să aibă vreun efect asupra scriptului. Acesta a funcționat la fel indiferent.

get_blog_excerpt este apelat dintr-o funcție din interiorul functions.php, care la rândul ei este apelată dintr-o funcție în afara buclei în archive.php
