我找到并编译了代码,因此可以从wordpress帖子中检索第一个匹配的url,并在必要时回显结果。我能够做到这一点,但是当我在自定义页面上使用下面的函数+代码时,我陷入了困境。另一方面,当我尝试通过在主题的functions.php中粘贴以下函数来在每个帖子上应用相同的代码并调用它时,由于很多httpd请求,我的服务器停止运行,并且mysql也崩溃了,直到我删除此代码并清除了缓存标准化我的服务器。
在主题的functions.php中添加的代码

function getBetween($content,$start,$end){
$r = explode($start, $content);
if (isset($r[1])){
    $r = explode($end, $r[1]);
    return $r[0];
}
return '';
}


我试图使用以下代码调用上述函数:

<?php
    $content_post = get_post($my_postid);
    $content = $content_post->post_content;
    $content = apply_filters('the_content', $content);
    $start = ' https://example.com/';
    $end = '"';
    $output = getBetween($content,$start,$end);
    echo $start.$output; ?>


它在自定义页面上提供如下所示的输出,但是在处理已经发布的帖子时却无能为力,因为服务器不堪重负httpd请求。

https://example.com/some-thing-is-here.html


任何帮助都感激不尽。谢谢

最佳答案

将您的代码放在functions.php文件中。它可以在我的本地主机上进行测试。希望它也对您有用。

    function getBetween($content,$start,$end){
    $r = explode($start, $content);

    if (isset($r[1])){
        $r = explode($end, $r[1]);
        return $r[0];
    }
    return '';
    }

    $thePostID = 1;
    $content_post = get_post($thePostID);
    $content = $content_post->post_content;
    $content = apply_filters('the_content', $content);
    //print_r($content);
    $start = 'http://localhost/testing_wordpress/';
    $end = '"';
    $output = getBetween($content,$start,$end);
    echo $start.$output;

关于php - 从Wordpress帖子中匹配并提取URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48839387/

10-09 01:13
查看更多