Support » Fixing WordPress » Adding Content from Your MySql data & Formatting nice tables in POSTs

  • Do you know how to code php and want to add lots of custom content to your WordPress blog? I had a design that called for executing batch scripts nightly that would update data in a mysql database. Next I wanted POSTs to automatically generate in my WordPress blog displaying this data. Automation.

    Initially I was frustrated wondering how to execute php and get table tags embedded in my posts. I found a generic plugin (wp-tables) and dug into the code. Turned out the solution was super easy. In the two years looking at WordPress, I wish someone would have told me this… so I’m sharing with the rest of my newbie world.

    The technique uses a simple substitution method. The code below will scan all POSTS for specific tags. When these tags are found, they are substituted for real data that you format in the function below. First create a post with this:


    Then create one php file (yourmodule.php) with the following code.

    Plugin Name: yourmodule
    Plugin URI:
    Description: This is a prototype module for easily creating custom, content for your posts.
    Author: Tom Jurgens
    Version: 1.0
    Author URI:
    Copyright 2006-2007 by Tom Jurgens
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    // Define your module to WordPress admin
    // Plugin activation
    //add_action('activate_yourmodule/yourmodule.php', 'checkdatabase');
    // Define module constant
    // Action calls for all functions
    add_filter('the_content', 'yourfunction');
    function yourfunction($content) {
      $search = "/\[yourmodule\s*=\s*(\w+)\]|\[yourmodule\s*=\s*([^\]]+)\]/i";   
      preg_match_all($search, $content, $matches);
      if (is_array($matches[1])) {
        for ($m = 0; $m < count($matches[0]); $m++) {
          $search = $matches[0][$m];
          $lenx = strlen(_YOURMODULE) + 1;
          $getdigit = substr($search,$lenx,1);
          switch ($getdigit) {
          case 1: // format this content
            $replace = yourfunction1();
          case 2: // format this content
            $replace = yourfunction2();
          $content = str_replace ($search, $replace, $content);
      return $content;
    function yourfunction1() {
    	// Edit this function to format your content
    	// Fetch data from mysql and format into nice tables… whatever
    	$mycontent = "<table width='100%' cellspacing='1' cellpadding='2' border='1'>";
    	$mycontent .= "<tr bgcolor='#4169E1'><td align='center'>Team</td><td align='center'>Record</td></tr>";
    	$mycontent .= "<tr><td align='center'>Chicago</td><td align='center'>23-0-0</td></tr>";
    	$mycontent .= "<tr><td align='center'>New York</td><td align='center'>0-23-0</td></tr></table>";
    	$mycontent .= "Chicago is so better than New York!";
    	Return $mycontent;
    function yourfunction2() {
    	// Edit this function to format your content
    	// Fetch data from mysql and format into nice tables… whatever
    	$mycontent = "The Yankees blow chunks!";
    	Return $mycontent;

    Now install the module using the WordPress admin page. If you view the post, your code should have substituted the literal [YourModule=1] with the output from yourfunction1. You can use this code for 0-9 and then A-Z…

  • The topic ‘Adding Content from Your MySql data & Formatting nice tables in POSTs’ is closed to new replies.