如何从帖子中提取链接的URL?

时间:2015-07-13 作者:AndreaNobili

我是WordPress的新手,我有以下疑问。

我有一个页面,从属于特定类别的帖子列表中获取一些信息,并将这些信息显示在类似“仪表板”的东西中。

所以我有这个代码:

<?php
/**
 * The template for displaying all Parallax Templates.
 *
 * @package accesspress_parallax
 */
?>
    <div class="service-listing clearfix">
    <?php 
        $args = array(
            \'cat\' => $category,
            \'posts_per_page\' => -1
            );
        $count_service = 0;
        $query = new WP_Query($args);
        if($query->have_posts()):
            $i = 0;
            while ($query->have_posts()): $query->the_post();
            $i = $i + 0.25;
            $count_service++;
            $service_class = ($count_service % 2 == 0) ? "even wow fadeInRight" : "odd wow fadeInLeft";
        ?>

        <div class="clearfix service-list <?php echo $service_class; ?>" data-wow-delay="<?php echo $i; ?>s">
            <div class="service-image">
                <?php if(has_post_thumbnail()) : 
                $image = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()),\'thumbnail\'); ?>
                    <img src="<?php echo esc_url($image[0]); ?>" alt="<?php the_title(); ?>">
                <?php else: ?>
                    <img src="<?php echo get_template_directory_uri(); ?>/images/no-image.jpg" alt="<?php the_title(); ?>">
                <?php endif; ?>
            </div>

            <div class="service-detail">
                <h3><?php the_title(); ?></h3>
                <div class="service-content"><?php the_content(); ?></div>
            </div>
        </div>

        <?php 
        if($count_service % 2 == 0): ?>
            <div class="clearfix"></div>
        <?php endif;
        ?>

        <?php
            endwhile;
            wp_reset_postdata();
        endif;
    ?>
    </div><!-- #primary -->
正如您在前面的代码中所看到的,脚本检索执行查询的posts列表,并在此列表上交互以特定方式显示此post。

因此,我的页面中的每个帖子内容都通过以下几行显示:

<div class="service-detail">
    <h3><?php the_title(); ?></h3>
    <div class="service-content"><?php the_content(); ?></div>
</div>
在浏览器中呈现如下内容:

<div class="service-detail">
    <h3>TEST</h3>

    <div class="service-content">
        <p><a href="https://it.wikipedia.org/wiki/Pagina_principale">test</a></p>
    </div>
</div>
所以,正如你在div中看到的class="service-content" 包含由the_content() 作用

现在我需要执行以下操作。

如果the_content() 函数是一个HTML链接(a haref 标记)将其放入变量(名为url, 否则,此变量将设置为null。

我可以用一些简单的方法吗?是否存在一些WordPress函数,可以检索到帖子中的链接列表(在我的特定情况下只有一个)?

如果不存在,我如何检查帖子内容是否是URL,以及是否将其值放入变量?

Tnx公司

1 个回复
SO网友:birgire

是否存在一些WordPress函数,可以检索到帖子中的链接列表(在我的特定情况下只有一个)?

检查核心wp_extract_urls() 功能:

$urls = wp_extract_urls( $content );
这将从任何给定内容中提取URL。

示例

$content = \'Two test sites: <a href="http://foo.tld">Foo.tld</a> and https://bar.tld\';
$urls    = wp_extract_urls( $content );
print_r( $urls  );
带输出:

Array
(
    [0] => http://foo.tld
    [1] => https://bar.tld
)

结束

相关推荐

如何让NEXT_POSTS_LINK使用定制页面

我有一个使用模板的自定义页面,并试图利用next\\u posts\\u link和previous\\u posts\\u link在新闻页面的底部设置按钮。问题是,当点击它们时,它成功地将“/主页/新闻/页面/2/”显示为页面,但忽略了它,仍然显示原来的10篇帖子。我怀疑页面上有一个过滤器可能是罪魁祸首,但我试着毫不费力地将其移除。非常感谢来自Wordpress大脑的帮助!<?php $paged = ( get_query_var( \'page\' ) ) ? get_qu