I am attempting to add HTML (name H tags) to my excerpts via the Advanced Excerpts plugin, however I believe my theme is not allowing it do some conflicting PHP. The Plugin is not working.
I believe the 'content' line isn't gelling with the following:
<code><p class="mpc-excerpt"><?php echo preg_replace('|\[(.+?)\](.+?\[/\\1\])?|s', '', agera_my_excerpt(get_the_content(''), 85));?></p></code
I've spent much too long on this!
Please help.
Dbranes answers:
<strong>update:</strong> well it actually works to write html directly in the excerpt box ;-)
but I guess you want to use the auto generated excerpt from the content (i.e. you have all your excerpt boxes empty) ?
---
Hi, if you only need the tags h3 and h4 in your excerpts, you could fx. write
[h3]some text[/h3]
[h4]some more text[/h4]
in your excerpt box and then add this in your functions.php
<?php
add_filter("the_excerpt","convert_brackets");
function convert_brackets($excerpt){
//edit this if you need to add more tags
$from=array("[h3]","[h4]","[/h3]","[/h4]");
$to=array("<h3>","<h4>","</h3>","</h4>");
$excerpt=str_replace($from,$to,$excerpt);
return $excerpt;
}
?>
and then use
the_excerpt();
to display the excerpt with the html tags h3 and h4.
cunningfox comments:
Yes, but if it works as a temp fix where I just have to write the copy twice I'm game...is this possible?
Would the code: the_excerpt(); just preceded the excerpt copy in the HTML on that page?
The theme developer (who sorta sucks) replied that I should delete his custom exceprt tool and just reinstall Advanced Excerpt. I'm assuming his custom tool is : <blockquote>agera_my_excerpt </blockquote> from the above .php?
Where would I find that to delete?
Dbranes comments:
i.e. you could try to replace
<p class="mpc-excerpt"><?php echo preg_replace('|\[(.+?)\](.+?\[/\\1\])?|s', '', agera_my_excerpt(get_the_content(''), 85));?></p>
with
<p class="mpc-excerpt"><?php the_excerpt();?></p>
and write html code directly in your excerpt box.
(ps: maybe this is what Arnav meant in the above threads?)
Dbranes comments:
ps: and comment this out
//remove_filter('get_the_excerpt', 'wp_trim_excerpt');
//add_filter('get_the_excerpt', 'custom_wp_trim_excerpt');
cunningfox comments:
Ok, I'll try the above as a resort after asking this.
The theme developer just got back to me with the following:
<blockquote>You would have to remove the filter from functions.php line 579 :) but you would have to also change every instance of the function call to the default wordpress function. If you don't know your way around wordpress this wont be easy.</blockquote>
That filter is this:
function agera_my_excerpt($string, $word_limit) {
$words = explode(' ', $string, ($word_limit + 1));
if (count($words) > $word_limit)
array_pop($words);
return strip_tags(implode(' ', $words) . '...');
What would I remove?
Dbranes comments:
<blockquote>You would have to remove the filter from functions.php line 579 :)</blockquote>
you could try to comment out line 579 (adding // in front of that line)
but you would have to also change every instance of the function call to the default wordpress function
I think he means to find all "agera_my_excerpt" function calls in your code, fx lines like
<p class="mpc-excerpt"><?php echo preg_replace('|\[(.+?)\](.+?\[/\\1\])?|s', '', agera_my_excerpt(get_the_content(''), 85));?></p>
and replace it with the function you want to use instead, fx
<p class="mpc-excerpt"><?php the_excerpt();?></p>
cunningfox comments:
What would it cost to have you do this?
Dbranes comments:
just for the reference:
a workable solution seems to be to modify the current theme function agera_my_excerpt to
function agera_my_excerpt($string, $word_limit) {
$words = explode(' ', $string, ($word_limit + 1));
if (count($words) > $word_limit){
array_pop($words);
}
return strip_tags(implode(' ', $words) . '...',"<h3><h4>");
}
and replace
<p class="mpc-excerpt"><?php echo preg_replace('|\[(.+?)\](.+?\[/\\1\])?|s', '', agera_my_excerpt(get_the_content(''), 85));?></p>
with
<div class="mpc-excerpt"><?php echo preg_replace('|\[(.+?)\](.+?\[/\\1\])?|s', '', agera_my_excerpt(get_the_content(''), 85));?></div>
and make some css changes.
Arnav Joy answers:
are you getting errors?
cunningfox comments:
No errors, the plugin just isn't doing anything.
Arnav Joy comments:
please explain more about your problem.
cunningfox comments:
I would like to include styled test within the excerpts on the the homepage flip boxes.
.mpc-card .face.back p.mpc-excerpt
On the first box I have <blockquote>Since 2001, Billion Dollar Babes has reigned as the world’s premier designer sample sale.(??)</blockquote> wrapped in a H3, but it is stripping it from the excerpt. I need the excerpt on the homepage to allow styled HTML text.
Arnav Joy comments:
try this in functinos.php
function custom_wp_trim_excerpt($text) {
$raw_excerpt = $text;
if ( '' == $text ) {
//Retrieve the post content.
$text = get_the_content('');
//Delete all shortcode tags from the content.
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$allowed_tags = ''; /*** MODIFY THIS. Add the allowed HTML tags separated by a comma.***/
$text = strip_tags($text, $allowed_tags);
$excerpt_word_count = 55; /*** MODIFY THIS. change the excerpt word count to any integer you like.***/
$excerpt_length = apply_filters('excerpt_length', $excerpt_word_count);
$excerpt_end = '[...]'; /*** MODIFY THIS. change the excerpt endind to something else.***/
$excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end);
$words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
if ( count($words) > $excerpt_length ) {
array_pop($words);
$text = implode(' ', $words);
$text = $text . $excerpt_more;
} else {
$text = implode(' ', $words);
}
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'custom_wp_trim_excerpt');
cunningfox comments:
Hmm. Nothing. I deactivated Advanced Excerpt Plugin, should I have kept active or does that matter?
Arnav Joy comments:
you can deactivate plugin and use it
<?php the_excerpt();?>
Arnav Joy comments:
and if you use it then you do not have to filter anything
<?php the_excerpt();?>
cunningfox comments:
I'm confused.
The code you gave me is not working.
What did you want me to do next? (I do not have Advanced Excerpt Installed.)
cunningfox comments:
Specifically, what does:
<blockquote>you can deactivate plugin and use it
<?php the_excerpt();?></blockquote>
mean?
Arnav Joy comments:
i mean to say that if you use
<?php the_excerpt();?>
then you do not have to filter it using any other code and you also can deactivate plugin then
Arnav Joy comments:
do you see any setting in admin panel for hover / active state of menu
cunningfox comments:
I'm an idiot. Of course. The text was white on the background box before; with that gone I need to change the header text in the theme. However now the font color on the menu to the left is no longer white...
cunningfox comments:
But the code you sent isn't working. Why do you mean by use <?php the_excerpt();?>
Here is the entire .php related to excerpts in my functions.php
/*-----------------------------------------------------------------------------------*/
/* Portfolio Setup - columns width, excerpt length ect.
/*-----------------------------------------------------------------------------------*/
function custom_wp_trim_excerpt($text) {
$raw_excerpt = $text;
if ( '' == $text ) {
//Retrieve the post content.
$text = get_the_content('');
//Delete all shortcode tags from the content.
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$allowed_tags = '<h3>,<h4>'; /*** MODIFY THIS. Add the allowed HTML tags separated by a comma.***/
$text = strip_tags($text, $allowed_tags);
$excerpt_word_count = 55; /*** MODIFY THIS. change the excerpt word count to any integer you like.***/
$excerpt_length = apply_filters('excerpt_length', $excerpt_word_count);
$excerpt_end = '[...]'; /*** MODIFY THIS. change the excerpt endind to something else.***/
$excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end);
$words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
if ( count($words) > $excerpt_length ) {
array_pop($words);
$text = implode(' ', $words);
$text = $text . $excerpt_more;
} else {
$text = implode(' ', $words);
}
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'custom_wp_trim_excerpt');
/*-----------------------------------------------------------------------------------*/
function agera_portfolio_columns($type, $page_data) {
global $mp_option;
global $shortname;
if (has_post_thumbnail()) {
?>
<div class="portfolio-item-thumb">
<div class="mpc-card">
<div class="front face">
<?php the_post_thumbnail( $type ); ?>
</div>
<div class="back face" style="background: <?php echo $page_data['background']; ?> ;">
<img class="mpc-viniet" src="<?php echo MPC_THEME_ROOT; ?>/images/viniet.png"/>
<a href="<?php the_permalink(); ?>"><h2><?php the_title(); ?></h2></a>
<!-- Remove shortcodes from excerpts -->
<p class="mpc-excerpt"><?php echo preg_replace('|\[(.+?)\](.+?\[/\\1\])?|s', '', agera_my_excerpt(get_the_content(''), 160));?></p>
<?php if( function_exists('zilla_likes') ) zilla_likes(); ?>
<?php if(isset($page_data['lightbox']) && $page_data['lightbox']) {
$type = '';
$asset = $page_data['lightbox_src'];
$search = preg_match('/.(jpg|JPG|jpeg|JPEG|gif|GIF|png)/', $asset);
if($search == 1) {
$type = 'mpc-image';
$search = 0;
}
$search = preg_match('/.(vimeo)./', $asset);
if($search == 1) {
$type = 'mpc-vimeo-video';
$search = 0;
}
$search = preg_match('/.(youtube)/', $asset);
if($search == 1) {
$type = 'mpc-youtube-video';
$search = 0;
}
$search = preg_match('/.(swf|SWF)/', $asset);
if($search == 1) {
$type = 'mpc-swf';
$search = 0;
}
if($type == '') {
$type = 'mpc-iframe';
}
?>
<a class="mpc-fancybox <?php echo $type; ?>" rel="<?php echo $page_data['gallery']; ?>" href="<?php echo $page_data['lightbox_src']; ?>" title="<?php echo $page_data['caption']; ?>"></a>
<?php } ?>
<a class="view-details" href="<?php the_permalink(); ?>"></a>
</div>
</div>
</div><!-- portfolio_item_thumb -->
<?php }
}
/*-----------------------------------------------------------------------------------*/
/* Triming the excerpt
/*-----------------------------------------------------------------------------------*/
function agera_my_excerpt($string, $word_limit) {
$words = explode(' ', $string, ($word_limit + 1));
if (count($words) > $word_limit)
array_pop($words);
return strip_tags(implode(' ', $words) . '...');
}