php WordPress -在查看时搜索和替换帖子内容

b1uwtaje  于 2023-06-04  发布在  PHP
关注(0)|答案(2)|浏览(135)

我有一个插件不是由我创建的,它从网络上抓取网络内容并显示在WordPress帖子中。
问题是应用程序描述显示的文本没有<br \>。该插件将所有内容转换为\n
我有一个想法,构建一个单行插件来拦截在查看时写入的帖子,并将\n替换为<br />
我从来没有为wordpress创建过插件。我在网上看到了这个:

<?php 
    /*
    Plugin Name: Convert \n in HTML BR
    Plugin URI: 
    Description: Convert \n in HTML BR
    Author: Me
    Version: 1.0
    Author URI: 
    */

function my_function($id) {
  $the_post = get_post($id);
  $content = str_replace("\n", "<br />", $the_post->post_content);
  return $content;
}
add_action('the_post', 'my_function');

?>

但这没有任何效果。
我也试过这个:

add_filter('the_content', 'modify_content');
function modify_content($content) {
    global $post;
    if ($post->ID != $desired_id)
        return $content;

    $modified_content = str_replace("\n", "<br />", $the_post->post_content);
    return $modified_content;
}

怎么了?我基本上是按照网上的一个帖子的食谱。

yzuktlbb

yzuktlbb1#

我会尝试直接对post对象进行更改:

add_action( 'the_post', 'replace_newline' );

function replace_newline( $post ) {
    $post->content = str_replace( "\n", "<br>", $post->post_content );
}
ulmd4ohb

ulmd4ohb2#

the_content对象上使用过滤器,您可以使用以下代码动态替换任何HTML字符串:

function replace_text($text) {
    $text = str_replace('look-for-this-string', 'replace-with-this-string', $text);
    $text = str_replace('\n', '<br>', $text);
    return $text;
}
add_filter('the_content', 'replace_text');

相关问题