PHP-OOP Как я могу передать тег привязки внутри тега ‹p›?

С помощью этого ответа PHP-OOP, связанного с WordPress, я нашел свое решение для того, что ищу. Но с той же функцией my_excerpt(); я хочу передать другой тег привязки (<a>) внутри тега <p>.

Прямо сейчас вызов my_excerpt() охватывает тексты БД с тегом абзаца (<p>here comes the excerpt</p>). И если я добавлю свой тег привязки следующим образом:

// Echoes out the excerpt
    public static function output() {
        the_excerpt(); ?>
        <a class="read-more" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php _e( 'Read More &raquo;', 'my-theme'); ?></a>
    <?php
    }

он показывает «Подробнее» только внизу текста, кроме текстов. Inspect Element показывает следующее:

<p>here comes the excerpt.</p>
<a href="post-link">Read More</a>

Как я могу внести изменения в функцию или класс, чтобы у меня была ссылка «Подробнее» внутри абзаца, например:

<p>here comes the excerpt.<a href="post-link">Read More</a></p>

Кроме того

Кроме того, я также пытаюсь удалить часть [...] из отрывка, созданного my_excerpt();. Итак, я попробовал следующее:

function change_excerpt($content) {
    $content = str_replace( '[...]','>',$content ); // remove [...], replace with ...
    $content = strip_tags( $content ); // remove HTML
    return $content;
}
add_filter('my_excerpt','change_excerpt');

Я ничего не делаю с представлением. Но если я изменю его на:

add_filter('the_excerpt','change_excerpt');

Затем, не зная, я получаю ранее желаемый тег привязки [внутри абзаца], потому что фильтр полностью удалил тег абзаца.

here comes the excerpt.<a href="post-link">Read More</a>

Но это ничего не делает с частью [...]. :(

Итак, мой заданный вопрос:
Как я могу поместить тег привязки внутри тега абзаца или удалить тег абзаца и удалить часть [...] из функции my_excerpt()?


person Mayeenul Islam    schedule 26.10.2013    source источник


Ответы (1)


попробуйте этот фрагмент

Включите в свои functions.php

function kc_excerpt( $length_callback = '', $more_callback = '' ) {

    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>';
    echo $output;
}

function kc_excerpt_more( $more ) {
    return '<a class="read-more" href="'. get_permalink() .'" title="'. get_the_title() .'"      rel="bookmark">Read More</a>';
}

function kc_excerpt_more_2($more) {
    return '...';
}

function kc_exdefault($length) {
    return 10;
}

function kc_ex100($length) {
    return 100;
}

И вызовите эту функцию из вашего файла шаблона

<?php kc_excerpt('kc_exdefault', 'kc_excerpt_more'); ?>

or

<?php kc_excerpt('kc_ex100', 'kc_excerpt_more_2'); ?>
person Kevin Regenrek    schedule 27.10.2013