私のブログでは、すべてのメインループについて、excerpt
ではなくcontent
を表示するように設定しています。
もっと長い投稿を作成してexcerpt
テキストボックスを空白のままにしておくと、wordpressが自分の投稿から抜粋して、最後に[...]
またはカスタムリンクを表示します。ただし、抜粋テキストボックスに自分の抜粋を入力しても、そのテキストは表示されますが、追加部分は表示されません。
誰かが私がそれを常にもっと読むことができるようにする方法を知っていますか?
おそらく、次のような条件文が機能します。論理は、「投稿に明示的な抜粋がある場合は、さらにリンクを追加する。それ以外の場合は、デフォルトの抜粋の動作を使用する」です。
if($post->post_excerpt) {
the_excerpt();
echo '<a href="'.get_permalink().'">Read More</a>';
} else {
the_excerpt();
}
これをGavinの提案と組み合わせて使用して、「続きを読む」リンクの外観を統一することができます。
私はその質問が2年以上前であったことを知っていますが、私はここでもっと正しい答えだと思います。
function new_excerpt_more($more) {
global $post;
return $more . '<a href="'. get_permalink( $post->ID ). '" class="readmore">more »</a>';
}
add_filter('the_excerpt', 'new_excerpt_more');
抜粋が入力されていても、「続き」リンクは抜粋段落の後に印刷されます。
私はそれが3年遅れていることを知っています、しかし私はそれが将来私を助けることさえできるより良い解決策を見つけました:
まず、デフォルトの省略記号[...]
を削除するために、デフォルトの抜粋moreを削除します。
function clean_excerpt_more() {
return '';
}
add_filter( 'excerpt_more', 'clean_excerpt_more' );
次に、抜粋を取得し、同じ抜粋段落にリンクをインラインで追加します。 (上記の解決策の大部分は、段落の外へのリンクを新しい行で示しています)。
function custom_the_excerpt( $excerpt ) {
global $post;
if( $post->post_excerpt ) {
// If the post has manual excerpt,
// it already has a point to end
// the paragraph, so we don't want
// the point + the Ellipsis: ....
// Clean it!
$Ellipsis = '';
} else {
$Ellipsis = '...';
}
// Save the link in a variable
$link = $Ellipsis . ' <a class="moretag" href="' . get_permalink( get_the_ID() ) . '">' . __( 'Read more »', 'starion' ) . '</a>';
// Concatenate the link to the excerpt
return $excerpt . $link;
}
add_filter( 'get_the_excerpt', 'custom_the_excerpt' );
編集:最後のメモ。他に何も変更する必要はありません。リンク付きの抜粋を表示するには、通常the_excerpt();
を使用してください。
それが誰かに役立つことを願っています:)
これをあなたのテーマのfunctions.phpに追加してください:
function new_excerpt_more($more) {
global $post;
return '<a href="'. get_permalink($post->ID) . '">Read the Rest...</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
詳細情報: 記事への「もっと読む」リンクを作成してください
がんばろう!