Untitled
// Custom post type - Pessoas add_action('init', function() { register_post_type('pessoa', [ 'label' => __('Pessoas', 'oceanwp'), 'public' => true, 'menu_position' => 20, 'menu_icon' => 'dashicons-admin-users', 'supports' => ['title', 'editor', 'thumbnail'], 'show_in_rest' => true, 'has_archive' => true, 'capability_type' => 'post', 'hierarchical' => true, 'rewrite' => ['slug' => 'pessoa'], 'query_var' => true, 'taxonomies' => ['tipo'], 'labels' => [ 'singular_name' => __('pessoa', 'oceanwp'), ], ]); register_taxonomy('tipo', ['pessoa'], [ 'label' => __('Tipos', 'oceanwp'), 'hierarchical' => true, 'rewrite' => ['slug' => 'tipo'], 'show_admin_column' => true, 'show_in_rest' => true, 'labels' => [ 'singular_name' => __('Tipo', 'oceanwp'), ] ]); register_taxonomy_for_object_type('tipo', 'pessoa'); /*add_rewrite_rule( '(autor|co\-autor|ilustrador|tradutor)/([a-z0-9-]+)[/]?$', 'index.php?post_type=pessoa&name=$matches[2]', 'top' ); add_rewrite_rule( 'autores[/]?$', 'index.php?post_type=pessoa&tipo=autor', 'top' ); add_rewrite_rule( 'ilustradores[/]?$', 'index.php?post_type=pessoa&tipo=ilustrador', 'top' );*/ add_rewrite_rule( '(autor|co\-autor|ilustrador|tradutor)/([a-z0-9-]+)[/]?$', 'index.php?post_type=pessoa&name=$matches[2]', 'top' ); add_rewrite_rule( '(autor|co\-autor|ilustrador|tradutor)/([a-z0-9-]+)/page/([0-9]{1,})/?', 'index.php?post_type=pessoa&name=$matches[2]&paged=$matches[3]', 'top' ); add_rewrite_rule( 'autores[/]?$', 'index.php?post_type=pessoa&tipo=autor', 'top' ); add_rewrite_rule( 'autores/page/([0-9]{1,})/?', 'index.php?post_type=pessoa&tipo=autor&paged=$matches[1]', 'top' ); add_rewrite_rule( 'ilustradores[/]?$', 'index.php?post_type=pessoa&tipo=ilustrador', 'top' ); add_rewrite_rule( 'ilustradores/page/([0-9]{1,})/?', 'index.php?post_type=pessoa&tipo=ilustrador&paged=$matches[1]', 'top' ); }); function flex_pessoa_link( $post_link, $id = 0 ){ $post = get_post($id); if ( is_object( $post ) ){ $terms = wp_get_object_terms( $post->ID, 'tipo' ); if( $terms ){ return str_replace( 'pessoa' , $terms[0]->slug , $post_link ); } } return $post_link; } add_filter( 'post_type_link', 'flex_pessoa_link', 1, 3 ); function flex_shortcode_autor () { $autores = get_field('produto_pessoas_autor'); $html = ''; if( $autores ): $html .= '<section class="elementor-section elementor-inner-section elementor-element elementor-section-boxed elementor-section-height-default elementor-section-height-default">'; $html .= '<div class="elementor-element elementor-element-be2efd5 elementor-widget elementor-widget-heading" data-id="be2efd5" data-element_type="widget" data-widget_type="heading.default">'; $html .= '<div class="elementor-widget-container">'; $html .= '<h2 class="elementor-heading-title elementor-size-default">' . ( sizeof( $autores ) > 1 ? 'Autores' : 'Autor(a)' ) . '</h2>'; $html .= '</div>'; $html .= '</div>'; foreach( $autores as $autor ): $html .= '<div class="elementor-container elementor-container elementor-column-gap-default">'; $html .= '<div class="elementor-row">'; $largura = '100'; if (has_post_thumbnail( $autor )): $image = wp_get_attachment_image_src( get_post_thumbnail_id( $autor ), 'autor-thumbnail' ); //var_dump(get_the_post_thumbnail( $post->ID, 'autor-thumbnail' )); $imagem = '<img src="'. $image[0] .'" title="'. get_the_title( $autor ) .'">'; $largura = '80'; $html .= '<div class="elementor-column elementor-col-20 elementor-inner-column elementor-element"><div class="elementor-column-wrap elementor-element-populated"><div class="elementor-widget-wrap"><div class="elementor-element">'. $imagem .'</div></div></div></div>'; endif; $html .= '<div class="elementor-column elementor-col-'. $largura .' elementor-inner-column elementor-element"><div class="elementor-column-wrap elementor-element-populated"><div class="elementor-widget-wrap">'; $html .= '<div class="elementor-element elementor-widget"><div class="elementor-widget-container"><h2 class="elementor-heading-title elementor-size-default"><a href="' .get_permalink( $autor ). '">'. get_the_title( $autor ) .'</a></h2></div></div>'; $html .= '<div class="elementor-element"><div class="elementor-widget-container">'. get_the_content(null, false, $autor ) .'</div></div>'; $html .= '</div></div></div>'; $html .= '</div>'; $html .= '</div>'; endforeach; $html .= '</section>'; endif; return $html; } add_shortcode( 'shortcode-autor', 'flex_shortcode_autor' ); function flex_shortcode_ilustrador () { $autores = get_field('produto_pessoas_ilustrador'); $html = ''; if( $autores ): $html .= '<section class="elementor-section elementor-inner-section elementor-element elementor-section-boxed elementor-section-height-default elementor-section-height-default">'; $html .= '<div class="elementor-element elementor-element-be2efd5 elementor-widget elementor-widget-heading" data-id="be2efd5" data-element_type="widget" data-widget_type="heading.default">'; $html .= '<div class="elementor-widget-container">'; $html .= '<h2 class="elementor-heading-title elementor-size-default">' . ( sizeof( $autores ) > 1 ? 'Ilustradores' : 'Ilustrador(a)' ) . '</h2>'; $html .= '</div>'; $html .= '</div>'; foreach( $autores as $autor ): $html .= '<div class="elementor-container elementor-container elementor-column-gap-default">'; $html .= '<div class="elementor-row">'; $largura = '100'; if (has_post_thumbnail( $autor )): $image = wp_get_attachment_image_src( get_post_thumbnail_id( $autor ), 'autor-thumbnail' ); //var_dump(get_the_post_thumbnail( $post->ID, 'autor-thumbnail' )); $imagem = '<img src="'. $image[0] .'" title="'. get_the_title( $autor ) .'">'; $largura = '80'; $html .= '<div class="elementor-column elementor-col-20 elementor-inner-column elementor-element"><div class="elementor-column-wrap elementor-element-populated"><div class="elementor-widget-wrap"><div class="elementor-element">'. $imagem .'</div></div></div></div>'; endif; $html .= '<div class="elementor-column elementor-col-'. $largura .' elementor-inner-column elementor-element"><div class="elementor-column-wrap elementor-element-populated"><div class="elementor-widget-wrap">'; $html .= '<div class="elementor-element elementor-widget"><div class="elementor-widget-container"><h2 class="elementor-heading-title elementor-size-default"><a href="' .get_permalink( $autor ). '">'. get_the_title( $autor ) .'</a></h2></div></div>'; $html .= '<div class="elementor-element"><div class="elementor-widget-container">'. get_the_content(null, false, $autor ) .'</div></div>'; $html .= '</div></div></div>'; $html .= '</div>'; $html .= '</div>'; endforeach; $html .= '</section>'; endif; return $html; } add_shortcode( 'shortcode-ilustrador', 'flex_shortcode_ilustrador' ); function flex_shortcode_botoes () { $release = get_field('produto_release'); $e_book = get_field('produto_e_book'); $audiolivro = get_field('produto_audiolivro'); $html = ''; if($release) { $html .= '<div class="elementor-element elementor-align-justify elementor-widget"><div class="elementor-widget-container"><div class="elementor-button-wrapper">'; $html .= '<a href="'. $release['url'] .'" target="_blank" class="elementor-button elementor-button-link elementor-size-sm" role="button"><span class="elementor-button-content-wrapper"><span class="elementor-button-text">Baixar o release</span></span></a>'; $html .= '</div></div></div>'; } if( $e_book ) { $titulo = count($e_book) > 1 ? 'E-books' : 'E-book'; $html .= '<div class="elementor-widget-container"><h4 style="margin-bottom:10px" class="elementor-heading-title elementor-size-default">' . $titulo . '</h4></div>'; foreach( $e_book as $row ) { $html .= '<div class="elementor-element elementor-align-justify elementor-widget"><div class="elementor-widget-container"><div class="elementor-button-wrapper">'; $html .= '<a href="' . $row['link'] . '" target="_blank" class="elementor-button elementor-button-link elementor-size-sm" role="button"><span class="elementor-button-content-wrapper"><span class="elementor-button-text">' . $row['nome'] . '</span></span></a>'; $html .= '</div></div></div>'; } } if($audiolivro) { $titulo = count($audiolivro) > 1 ? 'Audiolivros' : 'Audiolivro'; $html .= '<div class="elementor-widget-container"><h4 style="margin-bottom:10px" class="elementor-heading-title elementor-size-default">' . $titulo . '</h4></div>'; foreach( $audiolivro as $row ) { $html .= '<div class="elementor-element elementor-align-justify elementor-widget"><div class="elementor-widget-container"><div class="elementor-button-wrapper">'; $html .= '<a href="' . $row['link'] . '" target="_blank" class="elementor-button elementor-button-link elementor-size-sm" role="button"><span class="elementor-button-content-wrapper"><span class="elementor-button-text">' . $row['nome'] . '</span></span></a>'; $html .= '</div></div></div>'; } } return $html; } add_shortcode( 'shortcode-botoes', 'flex_shortcode_botoes' ); function flex_shortcode_premios () { $premios = get_field('produto_premios'); if( $premios ) { $html = ''; $html .= '<div class="elementor-widget-wrap">'; $html .= '<div class="elementor-element elementor-widget elementor-widget-heading"><div class="elementor-widget-container"><h2 class="elementor-heading-title elementor-size-default">Prêmios</h2></div></div>'; $html .= '<div class="elementor-widget-container"><div class="dce-acf-repeater"><ul class="dce-acf-repeater-list">'; foreach( $premios as $row ) { $html .= '<li class="dce-acf-repeater-item"><span class="repeater-item"><a href="'. $row['produto_premios_link'] .'" target="_blank">'. $row['produto_premios_texto'] .'</a></span></li>'; } $html .= '</ul></div></div>'; $html .= '</div>'; return $html; } } add_shortcode( 'shortcode-premios', 'flex_shortcode_premios' ); function flex_shortcode_detalhes_livro () { $produto_acabamento = get_field('produto_acabamento'); $produto_ano_publicacao = get_field('produto_ano_publicacao'); $produto_isbn = get_field('produto_isbn'); $produto_formato = get_field('produto_formato'); $produto_idioma = get_field('produto_idioma'); $produto_edicao = get_field('produto_edicao'); $produto_numero_paginas = get_field('produto_numero_paginas'); $produto_codigo = get_field('produto_codigo'); $html = ''; if($produto_acabamento) { $html .= '<strong>Acabamento:</strong> '. $produto_acabamento .'<br>'; } if($produto_ano_publicacao) { $html .= '<strong>Ano de publicação:</strong> '. $produto_ano_publicacao .'<br>'; } if($produto_isbn) { $html .= '<strong>ISBN:</strong> '. $produto_isbn .'<br>'; } if($produto_formato) { $html .= '<strong>Formato:</strong> '. $produto_formato .'<br>'; } if($produto_idioma) { $html .= '<strong>Idioma:</strong> '. $produto_idioma .'<br>'; } if($produto_edicao) { $html .= '<strong>Edição:</strong> '. $produto_edicao .'<br>'; } if($produto_numero_paginas) { $html .= '<strong>Número de páginas:</strong> '. $produto_numero_paginas .'<br>'; } $categories = get_the_terms ( get_the_ID(), 'product_cat' ); if($categories) { $html .= '<strong>Gênero:</strong> '; $tipo_categoria = array(); foreach( $categories as $term ){ $tipo_categoria[] = '<a href="/categoria-produto/'. $term->slug .'">'. $term->name .'</a>'; } $html .= implode(', ', $tipo_categoria).'.<br>'; } if($produto_codigo) { $html .= '<strong>Código interno:</strong> '. $produto_codigo .'<br>'; } return $html; } add_shortcode( 'shortcode-detalhes-livro', 'flex_shortcode_detalhes_livro' ); function flex_shortcode_pessoas () { $autores = get_field('produto_pessoas_autor'); $co_autores = get_field('produto_pessoas_co_autor'); $ilustradores = get_field('produto_pessoas_ilustrador'); $tradutores = get_field('produto_pessoas_tradutor'); $html = ''; if( $autores ): $html .= '<strong class="text-before">Autor(es): </strong>'; $tipo_autor = array(); foreach( $autores as $autor ): //setup_postdata($post); $tipo_autor[] = '<a href="' .get_permalink( $autor ). '?tipo=autor">'. get_the_title($autor) .'</a>'; endforeach; $html .= implode(', ', $tipo_autor).'.'; //wp_reset_postdata(); $html .= '<br>'; endif; if( $co_autores ): $html .= '<strong class="text-before">Co-editor(es): </strong>'; $tipo_co_autor = array(); foreach( $co_autores as $co_autor ): //setup_postdata($post); $tipo_co_autor[] = '<a href="' .get_permalink( $co_autor ). '?tipo=co-editor">'. get_the_title($co_autor) .'</a>'; endforeach; $html .= implode(', ', $tipo_co_autor).'.'; //wp_reset_postdata(); $html .= '<br>'; endif; if( $ilustradores ): $html .= '<strong class="text-before">Ilustrador(es): </strong>'; $tipo_ilustrador = array(); foreach( $ilustradores as $ilustrador ): //setup_postdata($post); $tipo_ilustrador[] = '<a href="' .get_permalink( $ilustrador ). '?tipo=ilustrador">'. get_the_title($ilustrador) .'</a>'; endforeach; $html .= implode(', ', $tipo_ilustrador).'.'; //wp_reset_postdata(); $html .= '<br>'; endif; if( $tradutores ): $html .= '<strong class="text-before">Tradutor(es): </strong>'; $tipo_tradutor = array(); foreach( $tradutores as $tradutor ): //setup_postdata($post); $tipo_tradutor[] = '<a href="' .get_permalink( $tradutor ). '?tipo=tradutor">'. get_the_title($tradutor) .'</a>'; endforeach; $html .= implode(', ', $tipo_tradutor).'.'; //wp_reset_postdata(); $html .= '<br>'; endif; return $html; } add_shortcode( 'shortcode-pessoas', 'flex_shortcode_pessoas' ); function single_produto_midia_lista( $query ) { $posts = get_field( 'produto_na_midia' ); if ( $posts ) { $query->set( 'post__in', $posts ); } return $query; } add_action( 'elementor/query/produto_midia', 'single_produto_midia_lista' ); /** * muda a busca padrao pela do plugin filter everything */ function custom_search_redirect() { if (isset($_GET['s']) && !empty($_GET['s'])) { $search_query = urlencode(get_search_query()); wp_redirect(home_url('/loja/?srch=' . $search_query)); exit(); } } add_action('template_redirect', 'custom_search_redirect');
Leave a Comment