Various common Wordpress Snippets
<?php // Load in WP functions outside of wordpress
define('WP_USE_THEMES', false);
require('/home/kindyhub/public_html/wp-blog-header.php'); ?>
add_action('wp_enqueue_scripts', 'no_more_jquery');
function no_more_jquery(){
//if(!is_bbpress()) { //sample condition inside function
wp_deregister_script('jquery');
//}
}
$args = array(
'meta_key' => '_wp_page_template',
'meta_value' => 'pages-yachts.php',
'hierarchical' => 0,
);
$pages = get_pages($args);
<?php $headerImages = get_uploaded_header_images();
$headerImages = shuffle($headerImages); //randomize
foreach($headerImages as $headerImage) {
print_r($headerImage); ?>
<?php } ?>
if(is_user_logged_in() && current_user_can('manage_options')){
// user is logged in && admin
}
else {
//not admin or logged in
header('Location: ' . get_site_url());
exit;
}
is_page_template('pages-listings-property.php');
get_page_template_slug($page->ID) == 'pages-news.php');
//get page ids based on templates used
$the_query = new WP_Query(array(
'post_type' => 'page',
'meta_key' => '_wp_page_template',
'meta_value' => 'templates/_partner.php'
));
//add menu item under appearance for editors
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
if (!current_user_can('activate_plugins')) {
function hide_menu() {
remove_submenu_page( 'themes.php', 'themes.php' ); // hide the theme selection submenu
remove_submenu_page( 'themes.php', 'widgets.php' ); // hide the widgets submenu
remove_submenu_page( 'themes.php', 'customize.php' ); // hide the widgets submenu
remove_submenu_page('themes.php', 'nav-menus.php'); // hide the menus submenu
}
add_action('admin_head', 'hide_menu');
}
post_password_required( $post );
if(is_page('private-media') || in_category('private-media')) {
echo '<meta name="robots" content="noindex, nofollow" />';
}
global $post;
if ($post->post_parent && post_password_required($post->post_parent)) {
wp_redirect(get_permalink($post->post_parent));
}
//better way to include template files with variables in scope in parent or child theme
include(locate_template('your-template-name.php'));
//format post_content
$page_id = 4;
$page = get_page($page_id);
echo apply_filters('the_content', $page->post_content);
// remove images from post_content
$content = get_the_content();
$postOutput = preg_replace('/<img[^>]+./','', $content);
<?php $args = array(
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'post_parent' => $post->ID,
);
$images = get_posts($args);
foreach ($images as $image) {
if($image->post_title == 'feature'){
list($url, $width, $height) = wp_get_attachment_image_src($image->ID, 'thumbnail'); ?>
<img src="<?php echo $url; ?>" alt="<?php echo $post->post_title; ?>">
<?php }
} ?>
<?php $args = array(
'post_type' => 'offer',
'paged' => $paged,
);
$offerQuery = new WP_Query($args);
if($offerQuery->have_posts()) { ?>
<div class="offersContainer articleContainer">
<?php while ( $offerQuery->have_posts() ) : $offerQuery->the_post(); include(locate_template('includes/includes-post.php'));
endwhile;
if ($offerQuery->max_num_pages > 1) { ?>
<div class="navBelow navigation">
<div class="pageNav navPrevious animate"><?php next_posts_link('Older'); ?></div>
<div class="pageNav navNext animate"><?php previous_posts_link('Newer'); ?></div>
</div><!--END NavBelow-->
<?php }
wp_reset_postdata(); ?>
</div><!--END BlogContainer-->
<?php } ?>
//remove admin bar for all but admin/editors
add_action('after_setup_theme', 'remove_admin_bar');
function remove_admin_bar() {
if (!current_user_can('edit_pages')) {
add_filter('show_admin_bar', '__return_false');
}
}
// record page load and queries
add_action( 'wp_footer', 'tcb_note_server_side_page_speed' );
function tcb_note_server_side_page_speed() {
date_default_timezone_set( get_option( 'timezone_string' ) );
$content = '[ ' . date( 'Y-m-d H:i:s T' ) . ' ] ';
$content .= 'Page created in ';
$content .= timer_stop( $display = 0, $precision = 2 );
$content .= ' seconds from ';
$content .= get_num_queries();
$content .= ' queries';
if( ! current_user_can( 'administrator' ) ) $content = "<!-- $content -->";
echo $content;
}
/**
* Restricts certain menu items from appearing the WP Admin area. Does not
* affect Administrator users.
*
* @action admin_menu
*/
function my_restrict_admin_menu_items() {
// Don't restrict Administrator users.
if(current_user_can( 'manage_options')){
return;
}
// Array of the menu item slugs you want to remove.
$restricted = array(
'menu-comments', // Comments (slug is ID of nav item)
'menu-tools', // Tools(slug is ID of nav item)
);
global $menu;
foreach ($menu as $item => $data) {
if (!isset($data[5])) {
continue; // Move along if the current $item doesn't have a slug.
}
elseif (in_array( $data[5], $restricted)) {
unset($menu[$item]); // Remove the current $item from the $menu.
}
}
}
add_action('admin_menu', 'my_restrict_admin_menu_items');
//redirect page within wp-admin
function feature_bookings_preprocess_pages($value){
global $pagenow;
$page = (isset($_REQUEST['page']) ? $_REQUEST['page'] : false);
if($pagenow == 'admin.php' && $page == 'feature-bookings'){
wp_redirect('http://google.com');
exit;
}
}
add_action('admin_init', 'feature_bookings_preprocess_pages');
/*-------------------------------------------------------------------------------------*/
/* Login Hooks and Filters for custom login redirects
/*-------------------------------------------------------------------------------------*/
if( ! function_exists( 'custom_login_fail' ) ) {
function custom_login_fail( $username ) {
$referrer = $_SERVER['HTTP_REFERER']; // where did the post submission come from?
// if there's a valid referrer, and it's not the default log-in screen
if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) {
if ( !strstr($referrer,'?login=failed') ) { // make sure we don’t append twice
wp_redirect( $referrer . '?login=failed' ); // append some information (login=failed) to the URL for the theme to use
} else {
wp_redirect( $referrer );
}
exit;
}
}
}
add_action( 'wp_login_failed', 'custom_login_fail' ); // hook failed login
if( ! function_exists( 'custom_login_empty' ) ) {
function custom_login_empty(){
$referrer = $_SERVER['HTTP_REFERER'];
if ( strstr($referrer,get_home_url()) && $user==null ) { // mylogin is the name of the loginpage.
if ( !strstr($referrer,'?login=empty') ) { // prevent appending twice
wp_redirect( $referrer . '?login=empty' );
} else {
wp_redirect( $referrer );
}
}
}
}
add_action( 'authenticate', 'custom_login_empty');
//embed video using wordpress player
global $wp_embed;
/**
* Replace the global $post with a fake ID (a really crazy one!)
* or else WP_Embed::autoembed() will skip the oEmbed check
* for some reason.
**/
global $post;
$oldpost = $post;
$post = new stdClass();
$post->ID = PHP_INT_MAX;
// Process oEmbeds
echo $wp_embed->autoembed( do_shortcode('https://www.youtube.com/watch?v=waYqBVqZQEU') );
// Restore the original $post
$post = $oldpost;