php - 从 WordPress 帖子中匹配并提取 URL

标签 php mysql wordpress apache

我找到并编译了一个代码,这样我就可以从我的 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/

相关文章:

php - Wordpress 似乎没有正确映射 POST 数据

php - 没有MySQL的登录脚本

php - 正确的 SQL 到 Laravel ORM

mysql - 多标签搜索查询不起作用

php - jQuery 中输出 json 数组

php - 如何在 PHP 中获取最后插入的行值并将其加 1

javascript - 如果计数大于 5,则隐藏/显示

php - 如何在 codeigniter 中使用 find_in_set 和 join

php - 如何自动清除 wp session 条目的选项表

wordpress - memcached 值得只在一台服务器上运行吗?