Untitled
unknown
plain_text
a year ago
14 kB
17
Indexable
// 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');
Editor is loading...
Leave a Comment