A collection of WordPress functions I use often.
Link to Home:
<?php home_url( $path_relative_to_root, $opt_scheme_http_https ); ?>
<?php echo esc_url( home_url( '/' ) ); ?>
Include another php file:
get_template_part($slug, $name);
*File name separated on ‘-‘ between two inputs to function. So if named include-content-blocks.php call is:
get_template_part('include', 'content-blocks');
Custom field images (not featured):
<?php echo wp_get_attachment_image($id, $size, false, array('class' => 'hero')); ?>
Get image values in array instead of outputting image:
$img = wp_get_attachment_image_src($id, $size, false, array('class' => 'hero'));
$img[0]; // path to image
$img[1]; //image width
$img[2]; //image height
Retrieving featured images is a different function:
<?php
if(has_post_thumbnail()){
the_post_thumbnail($size, array('class' => 'x');
} ?>
Get Image Caption
<?php $image_data = wp_prepare_attachment_for_js( $img_id );
if($image_data["caption"]): ?>
<div class="post-featured-image--caption">
<?php echo $image_data["caption"]; ?>
</div>
<?php endif; ?>
Conditionals to check post type Inside Loop:
<?php if( get_post_type() == 'post' ){ ...} ?>
Conditionals to check on single page (like in functions.php or header.php to change common things in templates):
<?php if( is_singular('post') ) {...} ?>
Keep selected taxonomies and categories in hierarchical order and not on top in admin:
<?php add_filter( 'wp_terms_checklist_args', 'ubx_terms_checklist_args', 1, 2 ); function
ubx_terms_checklist_args ( $args, $post_id ) { $args[ 'checked_ontop' ] = false; return $args; } ?>
Reset $post variable:
Use after calling setup_postdata($post), $query->the_post() or ACF repeaters/flexible content the_row()
<?php wp_reset_postdata(); ?>
Retrieve public query variable in the WP_Query class of the global $wp_query object:
<?php get_query_var( $var, $default_if_no_value ) ?>
Get all pages that use a certain template:
<?php get_pages( array(
'meta_key' => '_wp_page_template', //always value to retrieve by template
'meta_value' => 'template-name.php',
'post_type' => 'page',
'heirarchical' => 0 // if 0, gets all child pages too, otherwise only top level
)
); ?>
Call shortcode from template:
<?php echo do_shortcode('[ shortcode with settings ]'); ?>
Obfuscate Email:
<?php antispambot( $email_address, $hex_encoding ) ?>
See antispambot for more details