2

私はワードプレスのループの外で抜粋を実行するこのコードを持っています。

<?php
function get_excerpt_by_id($post_id){
$the_post = get_post($post_id); //Gets post ID
$the_excerpt = $the_post->post_content; //Gets post_content to be used as a basis for the excerpt
$excerpt_length = 35; //Sets excerpt length by word count
$the_excerpt = strip_tags(strip_shortcodes($the_excerpt)); //Strips tags and images
$words = explode(' ', $the_excerpt, $excerpt_length + 1);
if(count($words) > $excerpt_length) :
array_pop($words);
array_push($words, '…');
$the_excerpt = implode(' ', $words);
endif;
$the_excerpt = '<p>' . $the_excerpt . '</p>';
return $the_excerpt;
}
?>

ご覧のとおり、画像やその他のものなどのすべてのコンテンツを削除し、テキストのみを残しますが、これを行うと、多くの空白も出力されます(戻り値)。\ n、\ t、\ rでそれらを削除しようとしましたが、コードをどこに配置して機能させるかは明らかにわかりません。これを手伝ってくれませんか。

4

2 に答える 2

1

試す:

<?php
function get_excerpt_by_id($post_id){
$the_post = get_post($post_id); //Gets post ID
$the_excerpt = $the_post->post_content; //Gets post_content to be used as a basis for the excerpt
$excerpt_length = 35; //Sets excerpt length by word count
$the_excerpt = strip_tags(strip_shortcodes($the_excerpt)); //Strips tags and images
$words = explode(' ', $the_excerpt, $excerpt_length + 1);
if(count($words) > $excerpt_length) :
array_pop($words);
array_push($words, '…');
$the_excerpt = implode(' ', $words);
endif;
$the_excerpt = '<p>' . $the_excerpt . '</p>';
// LOOK HERE
$the_excerpt = str_replace("\r", "", $the_excerpt); // Replace carriage returns
$the_excerpt = str_replace("\n", "", $the_excerpt); // Replace new lines
// .. etc
return $the_excerpt;
}
?>
于 2013-02-18T16:55:11.660 に答える
0

これを試して

<?php
    function get_excerpt_by_id($post_id){
       $the_post = get_post($post_id); //Gets post ID
       $the_excerpt = $the_post->post_content; //Gets post_content to be used as a basis for the excerpt
       $the_excerpt = apply_filters('the_excerpt', $the_excerpt);
       return $the_excerpt;
    }
?>
于 2013-02-19T09:15:28.867 に答える