从Wordpress帖子匹配和提取URL

时间:2018-02-17 08:24:33

标签: php mysql wordpress apache

我找到并编译了一个代码,这样我就可以从wordpress帖子中检索第一个匹配的url,并在必要时回显结果。我能够做到这一点,但是当我在custompage上使用下面的函数+代码时,我遇到了这种情况。另一方面,当我尝试通过在主题函数.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; ?>

它在custompage上提供如下输出但在处理已发布的帖子时无法做任何事情,因为服务器因httpd请求而不堪重负。

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

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

将您的代码放在functions.php文件中。它将在我的localhost上测试。我希望它也适合你。

    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;