WP Smith

Creating WordPress & Genesis Websites Since 2010

  • Home
  • About
  • Services
  • Blog
  • Contact

Mar 22 2011

Useful WordPress, Genesis, & Thesis Directory and URL (HTTP) PHP Constants

When creating WordPress plugins, themes, or tweaking plugins, themes, functions.php, you will often need to reference files and folders throughout the WordPress installation. Since WordPress 2.6 (if they are pre-2.6, then use die();), users have had the ability to move this directory anywhere they want, so you always want to avoid hardcoding so that the code is re-usable, especially with plugins. WordPress has defined a set of PHP CONSTANTS (by the way, constants are always UPPERCASE) to store the path to the wp-content and plugins directories. You can use these CONSTANTS in your plugins, child themes or functions.php for any paths you need regardless of where the actual directory might exist on the server.

  • WP_CONTENT_URL: Full URL to wp-content
  • WP_CONTENT_DIR: The server path to the wp-content directory
  • WP_PLUGIN_URL: Full URL to the plugins directory
  • WP_PLUGIN_DIR: The server path to the plugins directory
  • WP_LANG_DIR: The server path to the language directory

You can set your own CONSTANT_DIR by (as a reminder, constants are always UPPERCASE):

[php]define('CONSTANT_DIR', ABSPATH . 'wp-content'); //sets DIR[/php]

You can set your own CONSTANT_URL by (as a reminder, constants are always UPPERCASE):

[php]define('CONSTANT_URL', get_option('siteurl').'/wp-content/'); //sets URL[/php]

For GENESIS Users, some CONSTANTS of interests are:

  • STYLESHEETPATH: /.../.../.../..../.../.../wp-content/themes/child_theme
  • TEMPLATEPATH: /.../.../.../..../.../.../wp-content/themes/genesis
  • PARENT_URL: get_bloginfo(‘template_directory’): e.g., http://domain.com/wp-content/themes/genesis
  • CHILD_URL: get_bloginfo(‘stylesheet_directory’): e.g., http://domain.com/wp-content/themes/child_theme
  • PARENT_THEME_VERSION: refers to the Genesis version running
  • PARENT_THEME_NAME = 'Genesis'
  • GENESIS_LANGUAGES_URL (sets to Genesis Library for Child Themes)

For THESIS (1.8) Users, some CONSTANTS of interests are:

  • THESIS_CUSTOM = STYLESHEETPATH: /.../.../.../..../.../.../wp-content/themes/thesis_18/custom
  • THESIS_CUSTOM_FOLDER: get_bloginfo('stylesheet_directory') . '/custom': e.g., http://domain.com/wp-content/themes/thesis_18/custom
  • THESIS_LAYOUT_CSS: THESIS_CUSTOM . '/layout.css: e.g., http://domain.com/wp-content/themes/thesis_18/layout.css
  • THESIS_ROTATOR:THESIS_CUSTOM . '/rotator': e.g., http://domain.com/wp-content/themes/thesis_18/rotator
  • THESIS_ROTATOR_FOLDER: THESIS_CUSTOM_FOLDER . '/rotator': e.g., http://domain.com/wp-content/themes/thesis_18/rotator

Are there any CONSTANTS that are used quite often that I missed?

Written by Travis Smith · Categorized: Genesis

Mar 21 2011

How to Create a WordPress Custom Post Type Template in Genesis

Custom post types can be rather confusing, daunting, intimidating, and frankly difficult. However, with Genesis, custom post types are easy as registering your post type, creating a template, and adding a page that uses the template. While I will assume that you know how to register your custom post type, if you don't download Brad William's/WebDevStudios' Custom Post Type UI Plugin.

To create your page template, you can simply download it here ([download id="5"]), or follow these instructions. In your favorite text editor, create a new document. Then add the following code:
[php]<?php
/*
*Template Name: Custom Post Type Template
*/

remove_action('genesis_loop', 'genesis_do_loop');
add_action('genesis_loop', 'custom_do_loop');
function custom_do_loop() {
global $paged;
$args = array('post_type' => 'my_post_type');
//$args = array('post_type' => 'books');

genesis_custom_loop( $args );
}
genesis();
?>[/php]
Template Name: Custom Post Type Template identifies it as a page template, so when you click Pages > Add New, your new template will appear in the right hand side for Page Templates as whatever you named it. To customize this template, change my_post_type to whatever you named your post type, which should be all lower case with no spaces. The default is 'post', which does not pick up your custom post type.

Written by Travis Smith · Categorized: Genesis, Tutorials

Mar 21 2011

How to Ensure that Your Lightbox Is Not Behind Your Flash/YouTube Video

On one of the websites that I was building, I had Next-Gen Galleries and YouTube videos on the same page. In one instance, I would click on the image for the thickbox to appear and the YouTube video sat on top. The YouTube video was embedded as an iframe.

[html]<iframe height="360" frameborder="0" width="580" src="http://www.youtube.com/embed/odXK8yMCuwM?color1=234900&amp;color2=4e9e00&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1" title="YouTube video player"></iframe>[/html]

So in order to add the wmode property to the video, I added &amp;wmode=Opaque to the end of the URL, so:

[html]<iframe height="360" frameborder="0" width="580" src="http://www.youtube.com/embed/odXK8yMCuwM?color1=234900&amp;color2=4e9e00&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;rel=1&amp;wmode=Opaque" title="YouTube video player"></iframe>[/html]

Then I was able to view my lightbox/thickbox with no issues.

Written by Travis Smith · Categorized: Tutorials

Mar 21 2011

How to Edit Author, Date, Time, Comments Link, Tags and Categories (Post Information) in Genesis

To Edit Author and Date Post Information, simply add the following to your functions.php file. This code uses Genesis specific shortcodes.

[php]// Modify Post Info
add_filter('genesis_post_info', 'my_post_info_filter');
function my_post_info_filter($post_info) {
if (!is_page()) {
$post_info = '[ post_date] by [ post_author_posts_link] at [ post_time] [ post_comments] [ post_edit]'; //remove spaces after initial [
//$post_info = 'Custom text'; //edit this to whatever you'd like.
}
return $post_info;
}[/php]

Available shortcodes are (without the space in front):

  • [ post_date]: Date of publication; e.g., [ post_date format="F j, Y" label="Dated: "] = Dated: March 21, 2011
  • [ post_time]: Time of publication; e.g., [ post_time format="g:i a"] = 1:29 am
  • [ post_author]: Displays author's name; e.g., [ post_author before="<em>" after="</em>"] = <em>Travis Smith</em>
  • [ post_author_link]: Produces the link to Author URL; e.g., [ post_author_link before="" after=""] = Travis Smith
  • [ post_author_posts_link]: Produces the link to Author's Archive; e.g., [ post_author_link before="" after=""] = Travis Smith
  • [ post_comments]: Produces the Comment Link; e.g., [ post_comments zero="No Comments" one="1 Comment" more="% Comments"] =
    • No Comments
    • 1 Comment
    • # Comments
  • [ post_tags]: Displays the tag link list; e.g., [ post_tags sep=", " before="Tags: "] =
  • [ post_categories]: Displays the category link list; e.g., [ post_categories sep=", " before="Posted Under: "] = Posted Under: Genesis, Tutorials
  • [ post_edit]: Displays the Edit link for logged in users; e.g., [ post_edit before="(" after=")"] =

For more shortcodes, see StudioPress's Shortcodes.

Written by Travis Smith · Categorized: Genesis, Tutorials

Mar 20 2011

PHP Tertiary Operator and Complex Conditional Assignment: Variable = Condition ? True Statement : False Statement

If you've been dealing with WordPress or PHP, more than likely you have seen the Ternary Operator in a statement. If you were like me, when you saw it for the first time, you had no idea what sort of assignment statement it was except possibly a conditional assignment. So what is it? The Ternary Operator is an operator that takes three (3) arguments: Condition, True Statement, and False Statement. So a complex conditional assignment is the same as a ternary operator but with more than three (3) arguments.

From Wikipedia: Ternary Operation:
[php]if ($a > $b) {
$result = $x;
} else {
$result = $y;
}
[/php]

Rewritten using the ternary operator:
[php]$result = ($a > $b) ? $x : $y;[/php]

So,
[php]$my_var = ($var1 > $var2) ? /*simple true statement */ : /*simple false statement */; [/php]

From the PHP manual:
[php]<?php
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// The above is identical to this if/else statement
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}

?>
[/php]

To create a switch-like conditional assignment as demonstrated in Wikipedia: Conditional Assignment ?:
[php]<?php
$arg = "T";
$vehicle = ($arg == 'B') ? 'bus' :
(($arg == 'A') ? 'airplane' :
(($arg == 'T') ? 'train' :
(($arg == 'C') ? 'car' :
(($arg == 'H') ? 'horse' :
'feet'))));
echo $vehicle;
?>
[/php]

Written by Travis Smith · Categorized: WordPress

  • « Previous Page
  • 1
  • …
  • 48
  • 49
  • 50
  • 51
  • 52
  • …
  • 61
  • Next Page »
  • Twitter
  • Facebook
  • LinkedIn
  • Google+
  • RSS

Copyright © 2025 � WP Smith on Genesis on Genesis Framework � WordPress � Log in