是否自动搜索和替换内容(页面/帖子)中的链接?

时间:2013-03-26 作者:UkrVolk11

我的网站的用户主要通过使用内置编辑器在内容(页面/帖子)中插入链接来共享文档。这些文件包括从PDF到word文档的所有内容。用户当前从类似FileRun的php文件管理器获取/复制这些链接。我的目标是让用户使用映射网络驱动器的路径,例如\\testdrive\\Folder1\\Folder2\\test。txt。已编写以下函数来处理将映射的网络驱动器文件替换到internet链接的操作,例如“http://page.test.org/files/“。

<?php
function test_test_url_parse($string)
{
// Called by test_test_url_parse_wrapper()
// The nature of preg_replace means this needs a seperate function
    $bits=explode("\\\\",$string);
    $bobs=array();
    foreach ($bits as $bit)
    {
        $bobs[]=urlencode($bit);
    }
    return "\\"http://page.test.org/files/".implode("/",$bobs)."\\"";
}

function test_test_url_parse_wrapper($string)
{
//Finds/replaces UCNs with URLs in the provided string. 
    $pattern1="~\\"[a-z]{1}:\\\\\\([^\\"]+)\\"~ie";
    return preg_replace($pattern1, "test_test_url_parse(\'$1\')", $string);
}
?>
我可以在哪里放置这样的函数来自动查看页面或帖子的内容,并相应地替换文件路径?从理论上讲,有没有办法把这仅仅放在儿童主题中?目前,当我上传照片等媒体时,它已经将文件放入路径中了“http://page.test.org/files/“。我真的在寻找通过帖子/页面内容的功能,并基本上执行一个恒定的“搜索和替换”

2 个回复
SO网友:golchha21

下面提到的链接中有一些类似的答案:

Removing any and all inline styles from the_content()

在的帮助下删除某些内联样式preg_replace 和wordpress挂钩(wp_insert_post_data &;the_content).

类似地,可以使用修改内容的任何部分,如本(Removing any and all inline styles from the_content()) 案例

SO网友:Zeth

我知道这是一个老问题,但它被推到了主页上(出于某种原因)。

我不会经常这样做,因为这会在每次加载页面时检查所有页面,这将是a lot 当用户只是四处浏览时,就会出现冗余操作。

我会在save_post-钩

因此:

function custom_check_URL( $post_ID, $post, $update ) {

  if ( \'publish\' === $post->post_status || \'page\' === $post->post_type) {
    // CHECK AND MODIFY YOUR URL\'S HERE. 
  }
}
add_action( \'save_post\', \'custom_check_URL\', 10, 3 );
我不能百分之百确定你在检查什么或用什么替换它,所以我没有在这个答案中包含它。

结束

相关推荐

get_posts() and filters

我为添加了自定义筛选函数the_posts 在插件中筛选。add_filter(\'the_posts\', \'posts_filter\'); function posts_filter() { … } 这在主循环中运行得很好,这意味着帖子会按照我在posts_filter 作用但我正在打电话get_posts() 在ajax请求中获取一些帖子。在那里,过滤器不起作用。query_posts() 或自定义wp_query 不要工作太多。所以问题是:我如何才能在主循环旁获得按the_p