【问题标题】:Match and Extract URL from Wordpress Posts从 Wordpress 帖子中匹配和提取 URL
【发布时间】:2018-07-28 02:34:42
【问题描述】:

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

它在 custompage 上提供如下输出,但在处理已发布的帖子时无法执行任何操作,因为服务器已被 httpd 请求淹没。

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

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

【问题讨论】:

  • 你能在functions.php文件中获取当前页面的post id吗?
  • 是的,我认为这是肯定的,因为当我使用相同的函数 + 代码在 custompage 上一起调用该函数时,它工作得更好。当我在所有帖子上申请时,服务器收到了很多暂停系统的 httpd 请求,我认为需要对这段代码进行优化,但我对此一无所知。
  • 我已经检查过您的代码在 localhost(本地机器)上运行良好。
  • 感谢您对其进行测试,当我放置在每个帖子上时,它显然在单个帖子上工作得更好,因此服务器停止了,因为每个网站都可以包含数百个单独的帖子。
  • 嗯,对了兄弟。

标签: php mysql wordpress apache


【解决方案1】:

将您的代码放在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;

【讨论】:

  • 嘿,在将函数代码放入functions.php时,它不适用于所有单独的帖子,主要是返回您当前浏览的帖子的URL而不是所需的url。因此,在您的主题中找到 single.php 或 footer.php 或 header.php 文件,并将函数以及调用此函数的代码放在同一个文件中,然后它会工作得很好,没有任何问题。
  • 我也在尝试这个函数和代码来使用 Ad-Injection 插件调用这个函数,但它只是返回我正在浏览的帖子的 url 不知道为什么但它是这样发生的。
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多