Hoje vou postar alguns exemplos de códigos funcionais que vão te ajudar a criar shortcodes para exibir e listar custom post types dentro do seu WordPress, para quem não sabe CPT são formas de você ter mais conteúdos específicos no seu painel, por exemplo, post é um post_type, Portfolio é outro, Páginas são outros, e assim vai.
Normalmente Custom Post_Types são utilizados em diversos tipos de WordPress para customização da área de cliente, podendo ser utilizados para praticamente tudo que se envolva a listagem de conteúdo específicos, normalmente se utiliza o plugin CPT UI para fazer a criação dos Posts e das Taxonomias necessárias.
Entretanto, um problema é exibir esses posts, ainda não temos um plugin realmente funcional para isso, então shortcodes sempre salvam!
add_shortcode( 'product-list','bpo_product_list' ); function bpo_product_list ( $atts ) { $atts = shortcode_atts( array( 'category' => '' ), $atts ); $terms = get_terms('product_category'); wp_reset_query(); $args = array('post_type' => 'product', 'tax_query' => array( array( 'taxonomy' => 'product_category', 'field' => 'slug', 'terms' => $atts, ), ), ); $loop = new WP_Query($args); if($loop->have_posts()) { while($loop->have_posts()) : $loop->the_post(); echo ' "'.get_the_title().'" '; endwhile; } else { echo 'Sorry, no posts were found'; } }
Acima temos um exemplo bacana de uso de ShortCode para recuperar dados de um Custom Post Type
Para obter mais informações, consulte CPT (CPT), product_category (categoria de produto).
[product-list category="shirts"] Outro Exemplo:
function shortcode_bws_quiz_maker($id) { if($id!='') { $post_id=$id[0]; $html=''; global $wpdb; $args=array('post_type'=>'post_type','p'=>$post_id); $wp_posts=new WP_Query($args); $posts=$wp_posts->posts; $html.="What you to get write here"; return $html; } else { return 'Please enter correct shortcode'; } } add_shortcode('bws_quiz_maker','shortcode_bws_quiz_maker');
Mais um exemplo funcional:
if ( ! function_exists('events_shortcode') ) { function events_shortcode() { $args = array( 'post_type' => 'events', 'post_status' => 'publish', 'order' => 'ASC', 'posts_per_page' => 10, ); $postslist = new WP_Query( $args ); global $post; if ( $postslist->have_posts() ) : $events .= '<div class="events-lists">'; while ( $postslist->have_posts() ) : $postslist->the_post(); $events .= '<div class="items">'; $events .= '<a href="'. get_permalink() .'">'. get_the_title() .'</a>'; $events .= '</div>'; endwhile; wp_reset_postdata(); $events .= '</div>'; endif; return $events; } add_shortcode( 'events', 'events_shortcode' ); }
Confira meus ultimos trabalhos:
Site para Arquitetura
Site para Vereador
Site para Balada Russa
Site para Balada
Site para Balada
Site para Empresa de Takoyaki
Site para Agência de Intercâmbio
Site Corporativo para Empresa de Tecnologia
TENHA UM SITE COM TECNOLOGIA DE PONTA E COM UM EDITOR EXCLUSIVO!