Home -> Code snippets
Custom WordPress code snippets
Put in functions.php
Breadcrumb links on pages:
function breadcrumb_links($content) { $parents = get_post_ancestors( $post->ID ); $title2 = get_the_title($post->ID); $page_link2 = get_page_link($post->ID); $url = get_bloginfo('url'); $title3 = get_the_title($url); foreach ($parents as $value) { $title = get_the_title($value); $page_link = get_page_link($value); $page_url = '<a href=' . $page_link .'>' . $title . '</a>'; $item_output1 = $page_url .' -> '. $item_output1; } $page_url2 = '<a href=' . $page_link2 .'>' . $title2 . '</a>'; $page_url3 = '<a href=' . $url .'>' . 'Home' . '</a>'; $beforecontent = '<h2>' . $page_url3 .' -> '. $item_output1 . $title2 . '</h2>'; $aftercontent = ''; $fullcontent = $beforecontent .'<br>' . '<br>' . $content . $aftercontent; if ( is_page() and !is_front_page() ) { return $fullcontent; } else { return $content; } } add_filter('the_content', 'breadcrumb_links');
Gallery Index page shortcode
Put shortcode in any page and it will grab all child pages with featured images and their title and create a grid gallery right in the page can be easily used to create galleries with sub galleries.
Example: https://www.machinecode.org/short-test
function n0x5_gallery() { $pages = get_pages(array('parent' => get_the_id())); $result = wp_list_pluck( $pages, 'ID' ); foreach ($result as $thumb) { $perma = get_permalink($thumb); $title = get_the_title($thumb); $thumbnail = get_the_post_thumbnail($thumb, 'thumbnail'); $sizes = wp_get_registered_image_subsizes(); $img_width = $sizes['thumbnail']['width']; if (!empty(get_the_post_thumbnail($thumb, 'thumbnail') )) { $thumb = '<div class="nox-item" style="width:'.$img_width.'px;float:left;height:200px;"><div class="n0x-lnk"><a href="'.$perma.'">'.$thumbnail.'</a></div><div class="n0x-title"><a href="'.$perma.'">'.$title.'</a></div></div>'; $lnks = $lnks . $thumb; } else { $thumb = '<a href="'.$perma.'">'.$title.'</a><br>'; $lnks = $lnks . $thumb; } } return $lnks; } add_shortcode('noxindex', 'n0x5_gallery');
Image width+size in gutenberg image block
function add_img_s1ze( $block_content = '', $block = [] ) { if ( isset( $block['blockName'] ) && 'core/image' === $block['blockName'] ) { $args2 = wp_parse_args( $block); $innr = $args2['attrs']['id']; $metadata = wp_get_attachment_metadata($innr); $width = $metadata['width']; $height = $metadata['height']; $lr5nfo = esc_url(wp_get_attachment_url($innr)); $uploaded = get_the_time('', $innr); $date5 = get_the_date('M d, Y', $innr); $url3 = explode("/", $lr5nfo); $url4 = end($url3); $html2 = str_replace('</figure>', '<div class="dimensions">' . $url4 . '<br>---<br>' . $width . 'x' . $height . '</div></figure>', $block_content); //$html = str_replace('<a href=', '<a data-fancybox="gallery" href=', $block_content); return $html2; } return $block_content; } add_filter( 'render_block', 'add_img_s1ze', 10, 2 );
Old gallery code
Older code to put image meta data in galleries for Classic WP themes, mostly replaced with the grid gallery above.
remove_shortcode('gallery', 'gallery_shortcode'); add_shortcode('gallery', 'custom_gallery'); function custom_gallery($attr) { $post = get_post(); static $instance = 0; $instance++; $attr['columns'] = 1; $attr['size'] = 'full'; $attr['link'] = 'none'; $attr['orderby'] = 'post__in'; $attr['include'] = $attr['ids']; $output = apply_filters('post_gallery', '', $attr); if ( $output != '' ) return $output; if ( isset( $attr['orderby'] ) ) { $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] ); if ( !$attr['orderby'] ) unset( $attr['orderby'] ); } extract(shortcode_atts(array( 'order' => 'DESC', 'orderby' => 'menu_order ID', 'id' => $post->ID, 'itemtag' => 'div', 'icontag' => 'div', 'captiontag' => 'p', 'columns' => 1, 'size' => 'medium', 'include' => '', 'exclude' => '' ), $attr)); $id = intval($id); if ( 'RAND' == $order ) $orderby = 'none'; if ( !empty($include) ) { $_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); $attachments = array(); foreach ( $_attachments as $key => $val ) { $attachments[$val->ID] = $_attachments[$key]; } } elseif ( !empty($exclude) ) { $attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); } else { $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); } if ( empty($attachments) ) return ''; $gallery_style = $gallery_div = ''; if ( apply_filters( 'use_default_gallery_style', true ) ) $gallery_style = "<!-- see gallery_shortcode() in functions.php -->"; $gallery_div = "<div class='gallery gallery-columns-1 gallery-size-full'>"; $output = apply_filters( 'gallery_style', $gallery_style . "\n\t\t" . $gallery_div ); foreach ( $attachments as $id => $attachment ) { $lr3nfo = wp_get_attachment_metadata($id); $cam = $lr3nfo[image_meta][camera]; $lr2nfo = "$lr3nfo[width] x $lr3nfo[height]"; $lr5nfo = $lr3nfo[file]; $lr6nfo = substr($lr5nfo, strpos($lr5nfo, "/") + 1); $lr4nfo = substr($lr6nfo, strpos($lr6nfo, "/") + 1); $trunc_nfo = $string = substr($lr4nfo,0,45); $date5 = get_the_date('M d, Y', $attachment); $link = wp_get_attachment_link($id, 'medium', false, false); $output .= " <div class='imgc'> $link <div class=\"dimensions\">$lr2nfo <div class=\"dlc\"> <div title=\"$lr4nfo\" class=\"filename1\">$trunc_nfo</div></div> <div class=\"uploaded\">Uploaded: $date5</div> </div></div>"; $output .= ""; } $output .= "</div>\n"; return $output; }