Popular WordPress Plugins, Like BuddyPress Need to Get With the Times.

My Experience With the WordPress Plugin: BuddyPress

 

I’ve been working on a social media based website for the past few months. We decided to give the WordPress Plugin: BuddyPress a try. After working with BuddyPress, it really is “Social networking, in a box.” However, if you are an advanced WordPress user or WordPress Developer, then you begin to see BuddyPress’s limitations quite quickly.

Just for the record, I am not intentionally bad mouthing BuddyPress directly. Think of this as more or less of a plugin review. It is a GREAT plugin for WordPress Newbies. If you are a WordPress Developer, continue reading.

Voice your opinions about the WordPress Plugin: BuddyPress

 

I wrote a post on the BuddyPress Support section of their website, under the BuddyPress forum: Requests & Feedback. My post is titled “[REQUEST] Fix BuddyPress’s Gravitational Orbit.” Check it out, and please voice your opinions.

In a nutshell, the WordPress Plugin: BuddyPress doesn’t allow WordPress to do all the heavy lifting for them. BuddyPress wants all eyes on them or maybe BuddyPress just wants to be the center of attention to a rather large crowd of users.

News flash! BuddyPress has square wheels for mobility, while WordPress has round wheels for efficient mobility.

Michael Ecklund’s Opinions About the WordPress Plugin: BuddyPress

 

As a WordPress Developer, I know that I would never use the WordPress Plugin: BuddyPress again for future projects. BuddyPress does indeed appeal to it’s nerdy developer crowed, how ever… BuddyPress really needs to devote a little more attention to their fellow nerd users.

BuddyPress stores everything in custom database tables, which was one of the biggest deal breakers for me. If BuddyPress utilized Custom Data (Custom Post Types, Custom Taxonomies and Terms, and Post Meta or Custom Fields), instead of using custom database tables, then I would definitely highly recommend the BuddyPress plugin.

If you are a WordPress Developer, my opinion would be wait until the WordPress Plugin: BuddyPress starts making use of Custom Data more, before you start basing your projects off this plugin. Just write your own code and use Custom Data, it would honestly be a more pain free and faster development process.

These are all just my opinions of course. If you are a WordPress newbie, then this would be a great plugin for you. If you are a WordPress Developer, I wouldn’t recommend this plugin as your project base. More opinions… Whee!

MADA | Minnesota Antiques Dealers Association | Antique Dealers in MN

After working closely with Carol Eppel of the Minnesota Antiques Dealers Association (AKA: MADA) for the past several months, we have compiled a new version of the online antiques directory consisting of member information and business information for each of the members of MADA (Minnesota Antiques Dealers Association).

Here is what the old MADA – Minnesota Antiques Dealers Association :: Member Directory looked like.

(Click the screenshot for a larger view)

As you can see, previously the MADA – Minnesota Antiques Dealers Association Membership Roster consisted of member and business information. Not to mention, all of the information was displayed on one page. MADA needed some serious work.

After revamping the structure of the MADA – Minnesota Antiques Dealers Association website, we achieved the separation of information which is what MADA was in desperate need of.

Here is what the new “Membership Roster” looks like.

MADA - Minnesota Antiques Dealers Association

(Click the screenshot for a larger view)

As you can see, each MADA member’s information is separated and individualized.

Now, each MADA member also gets their very own individual profile page. Here’s what that looks like.

MADA - Minnesota Antiques Dealers Association

(Click the screenshot for a larger view)

The information on the MADA member’s profile is split up into sections for quick and easy legibility.

Moving on now to an example of what a business listing may look like for a section on MADA – Minnesota Antiques Dealers Association website.

MADA - Minnesota Antiques Dealers Association

(Click the screenshot for a larger view)

Again, the information for each business in the Minnesota Antiques Dealers Association is separated and individualized, just like the MADA members listing.

For businesses, each of the businesses are categorized by the type of service it provides or whether it’s an antique shop or not. So depending what section of the MADA website you are on, you will see different results. This was very much needed in order to quickly find what you’re looking for without having to scroll through pages upon pages of content.

Here is what a MADA – Minnesota Antiques Dealers Association :: Business Profile looks like.

MADA - Minnesota Antiques Dealers Association

(Click on the screenshot for a larger view)

Same as the MADA member profile, except altered in order to convey information about the business rather than the member.

There has been many many features added to MADA – Minnesota Antiques Dealers Association website.

Example of member: Tony Nucera member profile.
Example of business: Park Lane Estate Sales business profile.

MADA – Minnesota Antiques Dealers Association Features include:

  • Separation of member information and business information
  • The ability to get directions to a business right on the site without having to actually leave the MADA – Minnesota Antiques Dealers Association website itself.
  • You can now find businesses by the type of service provided.
  • Antique Shops are separate from business services and can be browsed by city/state location as well.

Services provided by members of the MADA – Minnesota Antiques Dealers Association include:

I’m not going to post a screenshot for each section of their website. That would just take far too long. If you would like to see more about how the MADA – Minnesota Antiques Dealers Association website is setup, please continue to the official MADA – Minnesota Antiques Dealers Association website.

Klemp & Stanton, PLLP – Attorneys and Counselors at Law in Minnesota

Klemp & Stanton, PLLPKlemp & Stanton, PLLP have experienced Minnesota attorneys that practice law over a broad range of areas including: Estate Planning, Wills and Trusts, Business and Commercial Transactions, Divorce and Family Law, Employment Law, Civil Litigation, Real Estate Law, Probate, Bankruptcy and Debtor-Creditor Law.

The Minnesota law firm of Klemp & Stanton, PLLP represents individual and business clients located throughout the Minneapolis & St. Paul Metropolitan area. Klemp & Stanton, PLLP works with a number of carefully selected “Strategic Partners“, that of which provide a wide variety of professional services to their clients. To list a few of the outstanding professional services provided in strategic partnership with the Minnesota law firm of Klemp & Stanton, PLLP are as follows:  Financial and Investment Planning, Mortgage Lending and Banking, Insurance, Commercial Real Estate, Accounting and Taxation.

Klemp & Stanton, PLLP also provides a wide variety of legal resources which can guide through properly researching a legal issue of your own.

The Minnesota law firm of Klemp & Stanton, PLLP has a well-earned reputation for excellence and value in the legal community.  Although the Klemp & Stanton, PLLP offices are located in Mendota Heights, Minnesota, the attorneys at Klemp & Stanton, PLLP frequently travel to client homes and businesses in order to accommodate their schedules and needs.

The experienced Minnesota attorneys at Klemp & Stanton, PLLP offer an extensive range of legal services.  The Klemp & Stanton, PLLP Mendota Heights, Minnesota law firm and it’s team of stellar Minnesota attorneys serves clients located throughout the Twin Cities Metropolitan Area.

Contact Klemp & Stanton, PLLP

Klemp & Stanton, PLLP
Waters Drive Business Park
2295 Waters Drive
Mendota Heights, MN 55120

Phone: 651.310.1400
Fax: 651.222.2002

Map and Directions

Thank you for allowing Time Bomb Designs, LLC to clean up your online presence.

Continue to the Klemp & Stanton, PLLP website.

[WordPress] Mass Update Posts | Mass Update Pages | Custom Post Types

Today, I was working on a project which required mass updating portions of every WordPress page. After examining the pages in the WordPress Dashboard, I came to the conclusion that it would be entirely way too much work to manually update every single WordPress page by hand.

I decided it would be easier to write a custom function which could be placed in the functions.php file of a WordPress theme. I figured this would be the best route to take, considering it’s a reusable solution, and can be used to update a specific portion of a post or page in bulk.

If you wanted to change the post_status of all WordPress posts from private, to published, you could do something like:

[codesyntax lang=”php”]

mass_update_posts('post', 'private', 'post_status', 'private', 'publish', 'exact');

[/codesyntax]

If you just switched domains with your WordPress site, and need to search through your post_content for your old domain to update with your new domain you could do something like (we’ll use post_type: “page” with the post_status: “publish” in this example):

[codesyntax lang=”php”]

mass_update_posts('page', 'publish', 'post_content', 'old-domain.com', 'newdomainname.com', 'partial');

[/codesyntax]

Make sure to copy/paste the function into the functions.php file of your WordPress theme.

[codesyntax lang=”php”]

/** 
 * Mass Update Posts
 *
 * Mass update portions of posts, pages or custom post types.
 * Get all posts from a specified post type, determine the
 * status of the post, choose a portion of the post structure,
 * search for a string value associated with the specified key,
 * specify a replacement string, and choose whether you want to 
 * search for a partial or exact match.
 *
 * @param string $post_type Post type to fetch posts from.
 * @param string $post_status Status of the post (eg. publish, private).
 * @param string $key Portion of the post (eg. post_status, post_type).
 * @param string $find Value of the portion of post (eg. publish, page).
 * @param string $replace String to replace value with. (eg. private, post).
 * @param string $match_type Accepts 'partial' or 'exact' match.
 **/
function mass_update_posts($post_type, $post_status, $key, $find, $replace, $match_type){
	$args = array(
	    'numberposts' 	=> -1,
	    'post_type'	=> $post_type,
	    'post_status'	=> $post_status
	);
	$posts = get_posts($args);
	$return = '';
	for($i = 0; $i < count($posts); $i++){
		// Check if the portion of the post exists.
		if(array_key_exists($key, $posts[$i])){
			if($match_type == 'exact'){
				// Check if the portion of the post matches exact search.
				if($posts[$i]->$key == $find){
					$action = 'update';
				} else{
					$action = 'return';
				}
			} elseif($match_type == 'partial'){
				// Check if the portion of the post matches partial search.
				$search = strpos($posts[$i]->$key, $find);
				if($search !== false){
					$action = 'update';
				} else{
					$action = 'return';
				}
			} else{
				$return .= '<p><strong>Error!</strong> Specify either &quot;partial&quot; or &quot;exact&quot; match.</p>';
			}
			// Found the search query. Carry on.
			if($action == 'update'){
				// Set the portion of the post to be updated.
				$update['ID'] = $posts[$i]->ID;
				$update[$key] = $replace;
				// Update the portion of the post.
				$updated = wp_update_post($update);
				// Check if update passes/fails.
				if($updated){
					//array_push($replaced, array($posts[$i]->$key => str_replace($find, $replace, $posts[$i]->$key)));
					$replaced[][$posts[$i]->$key] = str_replace($find, $replace, $posts[$i]->$key);
				} else{
					$return .= '<p><strong>Error!</strong> Key: '.$key.' was found, however, failed to update the post: <strong>&#35;'.$posts[$i]->ID.'</strong> <em>'.$posts[$i]->post_title.'</em>.</p>';	
				}	
			} elseif($action == 'return'){
				$return .= '<p><strong>Error!</strong> Could not find &quot;'.$find.'&quot; in key: <strong>'.$key.'</strong>.</p>';
			}
		} else{
			$return .= '<p><strong>Error!</strong> Invalid key specified.</p>';
		}
	}
	// Posts were updated. Output the result.
	if(!empty($replaced)){
		$return .= '<p><strong>Success!</strong> Updated '.count($replaced).' posts.</p>';
		foreach($replaced as $key => $value){
			foreach($value as $old => $new){
				$return .= '<p><strong>Old:</strong> <em>'.$old.'</em> <span style="padding: 0px 24px;">&#61;&#62;</span><br /> <strong>New:</strong> '.$new.'</p>';
			}
		}
	}
	echo $return;
}

[/codesyntax]

 

$wordpress = [‘php’][‘wp’][‘save-post’][‘w3tc’][‘clear-all-caches’];

This post was intended to enable a clear all cache-able items upon the WordPress action hook “save_post“, within the limits of the W3 Total Cache plugin for WordPress. This should work with Posts, Pages, and Custom Post Types. If you do not want it clearing ALL of your caches upon each WordPress action hook save_post, then you will need to edit the function save_post() in the cache.php class file.

You have the following options for which caches to clear upon the WordPress action hook save_post:

  1. $this->clear_db_caches();
    • Calls the W3TC function: w3tc_dbcache_flush();
    • Clears the DB caches completely. Note: Doesn’t clear MySQL Query Cache, just WP based DB caches.
  2. $this->clear_minify_caches();
    • Calls the W3TC function: w3tc_minify_flush();
    • Clears the minified content caches completely.
  3. $this->clear_object_caches();
    • Calls the W3TC function: w3tc_objectcache_flush();
    • Clears the object caches completely.
  4. $this->clear_page_caches();
    • Calls the W3TC function: w3tc_pgcache_flush();
    • Clears the Page Cache completely.
  5. $this->clear_all_caches();
    • Calls each of the W3TC functions in one instance.
    • Attempts to clear all W3TC caches completely.

You will need to follow the instructions below in order to start making use of this WordPress contribution.

  • Add the following line to your functions.php file in your WordPress template directory.

[codesyntax lang=”php”]

require_once(get_template_directory().'/inc/class/cache.php');

[/codesyntax]

  • Save the code below into the file name “cache.php“.
  • Upload cache.php to “./wp-content/themes/<your-theme-name>/inc/class/

[codesyntax lang=”php”]

<?php
if(!class_exists('cache')){
	class cache{
		/**
		 * Initiate!
		 *
		 * @return void
		 * @author Michael Ecklund
		 **/
		public function __construct() {
			add_action('init', array(&$this, 'init'));
		}

		/**
		 * Hooks the WP init action
		 *
		 * Runs the save_post action
		 *
		 * @return void
		 * @author Michael Ecklund
		 **/
		public function init(){
			add_action('save_post', array(&$this, 'save_post'));
			add_action('post_updated_messages', array(&$this, 'message'));
		}

		/**
		 * Display update message
		 *
		 * Outputs a message using post_updated_messages, after the WP save_post action
		 *
		 * @return void
		 * @author Michael Ecklund
		 **/
		public function message(){
			_e('<div class="updated"><p><strong>Post updated &amp; All W3 Total Caches were cleared!</strong></p></div>');
		}

		/**
		 * Hooks the WP save_post action
		 *
		 * Clears all W3TC caches when posts are saved
		 *
		 * @return void
		 * @author Michael Ecklund
		 **/
		public function save_post(){
			global $flag;
			if($flag == 0){
				$this->clear_all_caches();
			}
			$flag = 1;
		}	

		/**
		 * Clear the DB caches completely.
		 *
		 * Doesn't clear MySQL Query Cache, just WP based DB caches.
		 *
		 * @return void
		 * @author Michael Ecklund
		 **/
		private function clear_db_caches(){
			if(function_exists('w3tc_dbcache_flush')){
				w3tc_dbcache_flush();
			}
		}

		/**
		 * Clear the minified content caches completely.
		 *
		 * @return void
		 * @author Michael Ecklund
		 **/
		private function clear_minify_caches(){
			if(function_exists('w3tc_minify_flush')){
				w3tc_minify_flush();
			}
		}

		/**
		 * Clear the object caches completely.
		 *
		 * @return void
		 * @author Michael Ecklund
		 **/
		private function clear_object_caches(){
			wp_cache_flush();
			if(function_exists('w3tc_objectcache_flush')){
				w3tc_objectcache_flush();
			}
		}

		/**
		 * Clear the Page Cache completely.
		 *
		 * @return void
		 * @author Michael Ecklund
		 **/
		private function clear_page_caches(){
			if(function_exists('w3tc_pgcache_flush')){
				w3tc_pgcache_flush();
			}
		}

		/**
		 * Attempt to clear all caches.
		 *
		 * @return void
		 * @author Michael Ecklund
		 **/
		private function clear_all_caches(){
			$this->clear_db_caches();
			$this->clear_minify_caches();
			$this->clear_object_caches();
			$this->clear_page_caches();
		}

	}// EoF cache class

	// Initiate cache class
	$cache = new cache();

}// EoF cache class_exists
?>

[/codesyntax]

Clear the minified content caches completely.

$php[‘OOP’][‘WP’][‘Theme’][‘Development’] = Object Oriented WordPress

Story: So I was working on a new website for a client, when I started thinking of ways to better improve or speed up the WordPress theme development  process. Keeping in mind a neat organized file structure, while each of the php class files respect neatness as well. I’m sure there is an easier way, but this is what worked for me. Definitely open for constructive criticism.

Summary: How to externally access a WordPress theme child php class file which extends the WordPress theme parent php class file. Accessing a WordPress theme child php class file through a parent php class file, without globaling variables.

Description:
The parent class: $theme = new theme_core(); accesses the sub class: $cpt = new wp_cpt();

When working outside the WordPress theme php class file. You can access data from your WordPress theme child php class files through the WordPress theme parent php class file, OUTSIDE of the WordPress theme php class files (Example — Inside your WP Theme).

In this example…

Parent PHP class file: $theme.

You would most likely put methods that you want to power your WordPress theme in the parent php class file (/inc/theme.class.php).

Child PHP class file: $cpt.

You would most likely put methods that are related to populating or accessing WordPress Custom Post Type data in the child php class file (/inc/wp_cpt.class.php).

Inside your WordPress theme functions.php file:

[codesyntax lang=”php”]

<?php

// This file powers the entire WordPress theme
require_once(get_template_directory().'/inc/theme.class.php');

?>

[/codesyntax]

Inside your WordPress theme folder: /inc/theme.class.php

[codesyntax lang=”php”]

<?php

if(!class_exists('theme_core')){
	class theme_core{

		//************************************************
		//*	PROPERTIES
		//************************************************

		// Theme Settings
		var $cpt;

		//************************************************
		//*	CONSTRUCTOR
		//************************************************
		function __construct(){
			$this->set_subclass('cpt');
		}

		//************************************************
		//*	GETTERS
		//************************************************

		// Setup subclass files
		function get_subclass($classname){
			if($classname == 'cpt'){
				$return = $this->cpt;
			}
			return $return;
		}

		// get the sub class
		function cpt($type, $action, $args=NULL){
			$cpt = $this->cpt;
			if(!is_null($args) || $args != '' && $type == 'method'){
				$return = $cpt->$action($args);
			} else{
				if($type == 'property'){
					$return = $cpt->$action;
				}
				if($type == 'method'){
					$return = $cpt->$action();
				}
			}
			return $return;
		}

		//************************************************
		//*	SETTERS
		//************************************************

		// Setup subclass files
		function set_subclass($classname){
			if($classname == 'cpt'){
				// Require the class file
				require_once(get_template_directory().'/inc/wp-cpt.class.php');
				// Instantiate the class file
				$this->cpt = new wp_cpt();
			}
		}

	}// EoF Theme Class

	// Initiate Theme Class
	$theme = new theme_core();

}// EoF class_exists

?>

[/codesyntax]

Inside your WordPress theme folder: /inc/wp-cpt.class.php

[codesyntax lang=”php”]

<?php

if(!class_exists('wp_cpt')){
	class wp_cpt extends theme_core{

		//************************************************
		//*	PROPERTIES
		//************************************************
		var $test;

		//************************************************
		//*	CONSTRUCTOR
		//************************************************
		function __construct(){
			$this->set_test('Testing... Property...');
		}

		//************************************************
		//*	SETTERS
		//************************************************

		// Setter method, defining a test property.
		function set_test($arguement){
			$this->test = $arguement;
		}

		//************************************************
		//*	GETTERS
		//************************************************

		// Getter method, fetching a test property.
		function get_test(){
			return $this->test;
		}

		//************************************************
		//*	MISCELLANEOUS
		//************************************************

		function test($arguements=NULL){
			$message = '';
			if(!is_null($arguements)){
				if(count($arguements) > '1'){
					// Method with MULTIPLE arguements
					foreach($arguements as $arguement){
						$message .= $arguement;
					}
				} else{
					// Method with ONE arguement
					$message .= $arguements;
				}
			} else{
				// Method without arguements
				$message .= 'Testing... Method without arguements...';
			}
			return $message;
		}

	}// EoF wp_cpt Class

}// EoF wp_cpt Class Exists

?>

[/codesyntax]

Example of PHP class file usage within your WordPress theme index.php file:

[codesyntax lang=”php”]

<?php

// To run a method without arguements:
echo $theme->cpt('method', 'test').'<br />';
// That would fire the sub class method $wp_cpt->test();

// To run a method with MULTIPLE arguements:
echo $theme->cpt('method', 'test', array('Testing... ', 'Method with ', 'MULTIPLE arguements...')).'<br />';
// That would fire the sub class method $wp_cpt->test($arg1, $arg2, $arg3);

// To run a method with ONE arguement:
echo $theme->cpt('method', 'test', 'Testing... Method with ONE arguement...').'<br />';
// That would fire the sub class method $wp_cpt->test($arguement);

// To access a property:
echo $theme->cpt('property', 'test').'<br />';
// That would output the property value of $wp_cpt->test;

?>

[/codesyntax]

 

Set WordPress Featured Image For All Post Slugs Matching Image File Name in Specified Directory

Story:

I had a bunch of old blog posts on one of my websites that I wanted to spice up a bit. So, I figured I’d add a featured image for all my existing posts (VERY time consuming process). After Google Image Searching for all my blog photos, I saved them to my computer with the same name of each blog post’s slug.

Now, instead of manually uploading and applying these pictures to each of my blog posts, I decided to write a quick snippet of PHP to take care of that lengthy process for me.

What do you need to do?

Upload all your pictures into a sub directory within your WordPress theme directory. (Make sure the file names match the slugs of each post.)

In my case, I just created a sub directory named “thumbs” in my WordPress theme directory. What ever you decide to name your sub directory, be sure to change the $themePATH variable so that it corresponds with your name of choice.

Note: You may want to put your site in maintenance mode for this process to avoid any plausible problems.

Copy/paste this code into your header.php file and refresh your WordPress blog index.

Navigate to your WordPress Administration Dashboard and verify that a post or two have successfully applied the featured image of choice. If all is good, remove or comment out the code in your header.php file. Turn off your website’s maintenance mode.

Enjoy,

Michael Ecklund

P.S. Feel free to contact me with comments, questions, or concerns.

[codesyntax lang=”php”]

<?php
// Get All Posts.
$allPosts = get_posts(array('numberposts' => -1, 'post_type' => 'post'));
// Specify where the images are located.
$themePATH = get_theme_root().'/'.get_template().'/thumbs/';
// The uploads directory for your blog.
$uploads= wp_upload_dir();
// List of images including extensions.
$images = listImages($themePATH,true);
// List of images without extensions.
$imageNames = listImages($themePATH,false);

function reverseSlug($string){
	$string = str_replace("-", " ", $string);// Convert hyphen to space
	$string = ucwords($string);// Capitalize the beginning of each word
	return $string;
}

// Retrieve all images from the specified directory.
// Output array with and without file extensions.
function listImages($dirname=".",$display) {
	$ext = array("jpg", "png", "jpeg", "gif");
	$files = array();
	if($handle = opendir($dirname)){
		while(false !== ($file = readdir($handle))){
			for($i=0;$i<sizeof($ext);$i++){
				if(strstr($file, ".".$ext[$i])){
					$files[] = $file;
				}
			}
		}
		closedir($handle);
	}
	sort($files);
	foreach($files as $theFile){
		$info = pathinfo($theFile);
		$fileName = basename($theFile,'.'.$info['extension']);
		$files1[] = $fileName;
	}
	if($display == false){
		return ($files1);
	}
	if($display == true){
		return($files);
	}
}

for($i = 0; $i < count($allPosts); $i++){
	// Check if post slugs match image slugs.
	$check[$i] = in_array($allPosts[$i]->post_name, $imageNames);
	if($check[$i] == 1){
		echo 'Yes, post title matches image name.<br />'.PHP_EOL;
		// Search through the image slugs for a direct match with the post slug.
		$search[$i] = array_search($allPosts[$i]->post_name, $imageNames);
		$filename = $images[$search[$i]];
		$newfile = $uploads['path'].'/'.$filename;
		// Copy the image from theme folder to uploads directory.
		copy($themePATH.$filename, $newfile);
		// Delete image from theme folder.
		unlink($themePATH.$filename);
		// Retrieve the file type from the file name.
		$wp_filetype = wp_check_filetype(basename($filename), null);
		// Construct the attachment array.
		$attachment = array(
			'post_mime_type' => $wp_filetype['type'],
			'guid' => $uploads['url'].'/'.$filename,
			'post_title' => preg_replace('/\.[^.]+$/', '', reverseSlug(basename($filename))),
			'post_content' => '',
			'post_status' => 'inherit'
		);
		// This function inserts an attachment into the media library.
		$attach_id = wp_insert_attachment($attachment, $newfile, $allPosts[$i]->ID);
		// You must first include the image.php file
		// For the function wp_generate_attachment_metadata() to work.
		require_once(ABSPATH . 'wp-admin/includes/image.php');
		// This function generates metadata for an image attachment.
		// It also creates a thumbnail and other intermediate sizes
		// of the image attachment based on the sizes defined on
		// the Settings_Media_Screen.
		$attach_data = wp_generate_attachment_metadata($attach_id, $newfile);
		if(!is_wp_error($attach_id)){
			// Update metadata for an attachment.
			wp_update_attachment_metadata($attach_id, $attach_data);
			// Updates the value of an existing meta key (custom field) for the specified post.
			update_post_meta($allPosts[$i]->ID, '_thumbnail_id', $attach_id);
		}
	}
	else{
		echo 'No matches found.<br />'.PHP_EOL;
	}
}
?>

[/codesyntax]

 

New! Web Design! www.MatthewMichaelEbert.com

Official Matthew Michael Ebert Website! | Matthew Ebert | Matt Ebert

Matt Ebert is a student attending college at Saint Cloud State University, currently pursuing a degree in Film Studies and a minor in Art.

Matt Ebert is a self motivated individual with strong  problem solving skills as well as written and oral communication skills. Matt Ebert has a background in art, and a developing  passion for film editing.

So now that you know a little about Matt Ebert, check out his website!

With Matt Ebert’s personal website, we brainstormed ideas on how to incorporate his existing website into something similar without much of a drastic change. Matt Ebert is very proud of his recently revised website layout.

Best of luck with everything Matt Ebert!

New! Web Design! www.shizzkabiz.com

ShizzKaBiz – Your Source For… Everything!

Hello, welcome to ShizzKaBiz. We’re a team that supplies you with minutes, hours, or days of content that will make you laugh, interested, or just leave. We don’t really care what you think of our website, because it will always be the one and only ShizzKaBiz. Ladies and gentlemen, boys and girls, brace yourself for the ShizzKaBiz adventure.

With ShizzKaBiz, we went for a blog style website. They post random articles on a daily basis. So we had to come up with something that would be neat and organized, while keeping the eye candy delicious. There will be new additions to ShizzKaBiz in the future, including a more clutter-free look and feel, while still keeping it a typical blog style website.

Check back in the future regarding the newest additions to the ShizzKaBiz website!

New! Web Design! www.JasonWalstrom.com

Jason Walstrom - Professional Tattooing in Northeast Minneapolis, MN - Northeast TattooAbout once a year or so, My cousin Jason Walstrom and I talk about revamping his existing website to give it a new look and feel, while keeping in mind a better search engine presence.  Jason Walstrom’s new layout is extremely search engine friendly, while also appealing to the eye. We went for the old vintage style blog look.

Custom, Hand-Drawn Tattooing and Artwork in Northeast Minneapolis, MN. Professional Tattooing in Northeast Minneapolis, MN. Northeast Tattoo, Laser Tattoo Removal and Body Piercing.

I just wanted to thank Jason Walstrom for acknowledging my work and promoting my services. Thank you and appreciate it!