Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
14 kB
0
Indexable
Never
// 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):&nbsp;</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):&nbsp;</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):&nbsp;</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):&nbsp;</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