beto
  • 0
Новичок

Получить значение ссылки только из the_content()?

  • 0

У меня есть новости в сообщениях, и я пытаюсь отобразить две последние новостные статьи (сообщения) на своей главной странице. Я решил это, получив заголовок с помощью the_title() и немного текста с помощью the_excerpt() .

Я хочу показать еще… ссылку, которая приведет вас к сообщению. Тем не менее, некоторые новостные статьи, которые я публикую, содержат некоторый текст в теле сообщения, который является ссылкой, как мне получить ссылку только в теле сообщения, чтобы моя дополнительная ссылка привела вас туда напрямую?

Например, иногда мы будем ссылаться на новостные статьи в PDF-файлах, которые находятся на другом сервере.

Я использую следующий код.

<?php query_posts('category_name=news2011'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <?php /* the_ID(); */ ?> 
    <?php /* the_date('F Y'); */ ?>
    <ol class="news">
        <strong><p><?php the_title()?></p></strong>
        <li><?php the_content(); ?></li>
    </ol>
<?php endwhile; endif; ?>
Share
  1. Вы можете просмотреть содержимое, чтобы увидеть, содержит ли оно ссылку, а затем проанализировать его, чтобы найти href атрибут. Есть много способов сделать это, в этом примере используется встроенный функционал kses, как продемонстрировал Otto :

    $post_link = get_the_permalink();
    if ( preg_match('/<a (.+?)>/', get_the_content(), $match) ) {
        $link = array();
        foreach ( wp_kses_hair($match[1], array('http')) as $attr) {
            $link[$attr['name']] = $attr['value'];
        }
        $post_link = $link['href'];
    }
    
    • 0

Оставить ответ

You must login to add an answer.