別の「もっと読む」リンクを追加する簡単な方法はありますか?私はいくつかの記事には標準の「続きを読む」リンクを使用していますが、他の記事には「詳細」のような別のテキストを使用したいと思います。 the_excerpt
を使ってこれを行うことができますか?
後の更新:これは「続きを読む」または「続きを読む」リンクに使用される2つの標準の12の関数です。
function twentyeleven_continue_reading_link() {
return ' <a href="'. esc_url( get_permalink() ) . '">' . __( '<span class="more">more +</span>', 'twentyeleven' ) . '</a>';
}
function twentyeleven_auto_excerpt_more( $more ) {
return ' …' . twentyeleven_continue_reading_link();
}
add_filter( 'excerpt_more', 'twentyeleven_auto_excerpt_more' );
私のコードに基づいて、私はif / else
関数にtwentyeleven_auto_excerpt_more
ステートメントを含めることについて考えましたが、うまくいかないので、私は何か間違ったことをしました。
これはコードです:
function twentyeleven_auto_excerpt_more( $more ) {
$read_more_link_2 = "View Image";
if ( in_category( 'events' )) {
return $read_more_link_2;
} else {
return ' …' . twentyeleven_continue_reading_link();
}
add_filter( 'excerpt_more', 'twentyeleven_auto_excerpt_more' );
PHPが私の強みではないことは明らかだと思います。
Readmoreリンクを変更するためのconditionの使用はどうですか。
これは投稿のカテゴリに基づいて別の続きを読むテキストを返すサンプルコードです。 WordPressで使用できる他のコンディショナルタグについては、 公式コーデックスページ を読んでください。
使用法 - このコードをテーマのfunctions.php
ファイルに追加してください。 postがimage
カテゴリにある場合、このコードはcontinue reading
をView Image
に置き換えます。
<?php
function wpse_60184_new_readmore_link( $more ) {
$read_more_link_2 = "View Image";
if ( in_category( 'image' )) {
return $read_more_link_2;
}
}
add_filter('excerpt_more', 'wpse_60184_new_readmore_link');
?>
このコードをあなたのテーマのfunctions.php
の最後に置きます。
//this will create read morelink when the_excerpt() is used
function wpse_60184_the_excerpt_more($more) {
in_category( 'events' ) ? $my_read_more_text = 'Read event' : $my_read_more_text = 'Read more';
global $post;
return '<a href="'. get_permalink($post->ID) . '">'.$my_read_more_text.'</a>';
}
add_filter('excerpt_more', 'wpse_60184_the_excerpt_more');
//this will change the read more link when <!-- more --> is used & the_content()
function wpse_60184_the_content_more( $more_link, $more_link_text ) {
in_category( 'events' ) ? $my_read_more_text = 'Read events' : $my_read_more_text = 'Read more';
return str_replace( $more_link_text, $my_read_more_text, $more_link );
}
add_filter( 'the_content_more_link', 'wpse_60184_the_content_more', 10, 2 );
2番目のコードは21のテーマでテストされており、localhostで問題なく動作しているようです。
the_excerpt()
が使用されている場合、wpse_60184_the_excerpt_more
はread-moreリンクを作成しますwpse_60184_the_content_more
はデフォルトのread moreリンクを新しいものに置き換えます。 <!-- more -->
タグで動作します。あなたは excerpt_more フィルタフックを使うことができます。
特定のメタデータフィールドを投稿に追加して、このフィルタがデフォルトのテキストを上書きするために使用することをお勧めします。
可能なPHPは、次のようになります(未テスト)。
function custom_excerpt_more( $more ) {
global $post;
$custom_read_more = get_post_meta($post->ID, 'read_more_text', true);
if (!empty($custom_read_more))
return $custom_read_more;
else
return $more;
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );