欲しいもの
さまざまな種類の抜粋を表示する必要があります。一部の項目には「もっと読む」ボタンの種類が必要なものもあれば、別の種類のボタンが必要なものもあります。同じことが抜粋の長さにも言えます。
私が抱えている問題
今のところ、両方のタイプの抜粋に完全な抜粋が表示されていて、「もっと読む」ボタンが完全になくなっています。
コード
カスタム抜粋長さ関数:
function custom_excerpt_long($length) {
return 100;
}
function custom_excerpt_short($length) {
return 30;
}
カスタム抜粋「もっと読む」ボタン機能:
function custom_continuereading($more) {
global $post;
return '... — <a class="view-article" href="' . get_permalink($post->ID) . '">Continue reading</a>';
}
function custom_readmore($more) {
global $post;
return '... — <a class="view-article" href="' . get_permalink($post->ID) . '">Read more</a>';
}
カスタム抜粋コールバック関数:
function custom_excerpt($length_callback = '', $more_callback = '') {
global $post;
if (function_exists($length_callback)) {
add_filter('excerpt_length', $length_callback);
}
if (function_exists($more_callback)) {
add_filter('excerpt_more', $more_callback);
}
$output = get_the_excerpt();
$output = apply_filters('wptexturize', $output);
$output = apply_filters('convert_chars', $output);
$output = '<p>' . $output . '</p>';
return $output;
}
抜粋を印刷するためのコード:
<?php echo custom_excerpt('custom_excerpt_long', 'custom_continuereading'); ?>
<?php echo custom_excerpt('custom_excerpt_short', 'custom_readmore'); ?>
何がおかしいのですか?ご協力ありがとうございました。
D.Danの答えで、私は別の解決策を求めました。これが最後の機能です。
function custom_excerpt($length = '') {
global $post;
$output = get_the_excerpt();
$output = apply_filters('wptexturize', $output);
$output = apply_filters('convert_chars', $output);
$output = substr($output, 0, $length);
$output = '<p>' . $output . '... <br><br> <a class="view-article" href="' . get_permalink($post->ID) . '">Continue reading</a></p>';
return $output;
}
そして私はこのように関数を呼び出すことができます:
<?php echo custom_excerpt(100); ?>
なぜ substr を使わないのですか?
短縮された抜粋を返す関数の例:
function shortened_excerpt() {
echo substr(get_the_excerpt(), 0, 30) . "...";
}