WordPress.org

Ready to get started?Download WordPress

Forums

Adding Content from Your MySql data & Formatting nice tables in POSTs (1 post)

  1. j8h9
    Member
    Posted 6 years ago #

    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:

    [YourModule=1]

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

    <?php
    
    /*
    Plugin Name: yourmodule
    Plugin URI: http://www.GTXWebDesign.com
    Description: This is a prototype module for easily creating custom, content for your posts.
    Author: Tom Jurgens
    Version: 1.0
    Author URI: http://www.GTXWebDesign.com
    
    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
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    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
    //load_plugin_textdomain('yourmodule','wp-content/plugins/yourmodule');
    
    // Plugin activation
    //add_action('activate_yourmodule/yourmodule.php', 'checkdatabase');
    
    // Define module constant
    define(“_YOURMODULE”,”yourmodule”);
    
    // 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();
            break;
          case 2: // format this content
            $replace = yourfunction2();
            break;
          }
          $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…

Topic Closed

This topic has been closed to new replies.

About this Topic

  • RSS feed for this topic
  • Started 6 years ago by j8h9
  • This topic is not a support question
  • WordPress version: 2.0.11