如何在帖子中抓取第一个链接…当然也叫它

时间:2011-05-04 作者:Marcus

多年来,我一直在试图找到这个问题的答案,不知道这里是否有人可以帮忙。我想“抓取”帖子中的第一个链接,并将其附加到按钮/图像上。我在这里尝试了许多选项:http://wpquestions.com/question/show/id/873

我在上面链接的最后一条建议中取得了更大的成功,但是,它只在Safari中有效。。。我试过Chrome、Opera、IE和Firefox,他们都看不到图像,更不用说链接了。

我的网站位于此处:http://www.officialiphoneapp.com

当你点击某个应用程序查看更多信息时,你应该会在帖子图片上方看到一个“在iTunes上可用”按钮,在帖子下方看到一个“在iTunes上下载”按钮,但除非你使用Safari,否则你也看不到。

欢迎提出任何建议。马库斯

2 个回复
SO网友:kaiser

两种可能性:使用the_content-筛选,或者在模板中调用它。

您可以将插件扔到文件夹中,或在主题函数中添加一个(或两个)函数。php文件。过滤器仅针对post格式触发link, 而模板标记可以在循环中更通用地使用。

作为插件

<?php
! defined( \'ABSPATH\' ) AND exit;
/* Plugin Name: (#16365) »kaiser« Get 1st link inside the content */

// As an public API function
function wpse16365_get_content_link( $content = false, $echo = false )
{
if ( ! in_the_loop() )
    return;

    // allows using this function also for excerpts
    ! $content AND $content = get_the_content();

    $content = preg_match_all( \'/href\\s*=\\s*[\\"\\\']([^\\"\\\']+)/\', $content, $links );
    $content = $links[1][0];
    $content = make_clickable( $content );

    // if you set the 2nd arg to true, you\'ll echo the output, else just return for later usage
    $echo AND print $content;

    return $content;
}

// As a the_content-filter Callback
function wpse16365_get_content_link_cb( $content )
{
    if ( \'link\' !== get_post_format() )
        return $content;

    $content = preg_match_all( \'/href\\s*=\\s*[\\"\\\']([^\\"\\\']+)/\', $content, $links );
    $content = $links[1][0];

    return make_clickable( $content );
}
add_filter( \'the_content\', \'wpse16365_get_content_link_cb\' );
这个函数应该回答您的问题。它经过测试,工作正常。

SO网友:Chip Bennett

更为更新和干净的方法:

function get_link_url() {
    $content = get_the_content();
    $has_url = get_url_in_content( $content );

    return ( $has_url ) ? $has_url : apply_filters( \'the_permalink\', get_permalink() );
}

http://www.wprecipes.com/how-to-get-the-first-image-from-the-post-and-display-it

http://bavotasan.com/tutorials/retrieve-the-first-image-from-a-wordpress-post/

http://wordpress.org/extend/plugins/simple-image-grabber/

结束

相关推荐

Preview posts returns 404

这是一个大型Wordpress多站点安装,使用单个博客的子文件夹,而不是域。我们正在运行3.1版,预览帖子不起作用。当我按preview时,我得到了404。php页面。日志文件中没有引起我注意的内容,所有插件都已禁用。有时,当我按preview时,会收到一条关于权限不足的错误消息。我没有办法尝试了。