bbPress

Simple, Fast, Elegant

bbPress support forums » Plugins

Replace word in Post

(4 posts)
  • Started 11 months ago by ruilouis
  • Latest reply from livibetter
  • This topic is not resolved
  1. ruilouis
    Member

    Hello all,

    I tried to realize a plugin that would allow me to replace some words by others in the post. I created the DB contained the words to replace and the word to put instead, i created the function and all is working fine, BUT, I don't find how to use it on BBPRESS.

    My function is something like
    echo replace_words($TextToBeTransform,$WordToReplace)
    , and the function use the DB to see what is be put instead of the $WordToReplace. As I can see, the post are printed out from the post.php of the template we do use.

    I got this:

    <?php
    $tset="A trial phrase.";
    $WordToBeReplaced="trial";
    ?>
    <div class="threadpost">
    <div class="post">
    <?php echo replace_words( $test,$WordToBeReplaced); post_text()?></div>
    <div class="poststuff">
    <?php printf( __('Posted %s ago'), bb_get_post_time() ); ?>
    ">#
    <?php post_ip_link(); ?> <?php post_edit_link(); ?>
    <?php post_delete_link(); ?></div>
    </div>

    It print me exactly as I want the "A trial phrase" replace trial by "new" (from the DB).

    The problem is that when I want to apply this to the text of the post, post_text(), it won't work at all. I see that this post_text() is actually applying filters and others to the text, which my cause my function to fail (no error, it just don't replace the words).

    Could someone tell me where should I apply my own filter replace_words() for it to be taken into account?

    Thank you very much.

    Posted 11 months ago #
  2. I'm guessing get_post_text() would be your best option. post_text() doesn't return a value, it just pastes the text onto the page.

    Posted 11 months ago #
  3. You also need http://tw2.php.net/str_replace

    I think it's better to write a plugin (using a filter) for this task, instead of modifying template. (ya... this would be a good example to be "How to write a plugin" on my podcast show)

    Posted 11 months ago #
  4. I just finished uploading talkPress 002: A Simple bbPress Plugin - Bad Words Filter. You can watch this here.
    The code mentioned in video is:

    <?php
    /*
    Plugin Name: Bad Words Filter
    Plugin URI: http://www.livibetter.com/
    Description: Removing bad words from post content
    Author: Yu-Jie Lin
    Author URI: http://www.livibetter.com/
    Version: 0.1
    */
    
    function BadWordsFilter($post_text) {
    //  $post_text = str_ireplace('bad', '*****', $post_text);
    
        $bad_words = array('bad', 'topic', 'cialis');
        foreach($bad_words as $bad)
    //      $post_text = str_ireplace($bad, '*****', $post_text);
            $post_text = preg_replace("/\\b$bad\\b/i", '*****', $post_text);
    
        return $post_text;
        }
    
    add_filter('post_text', 'BadWordsFilter');
    ?>
    Posted 11 months ago #

RSS feed for this topic

Reply

You must log in to post.

Code is Poetry.