1
resposta

Dúvida pra chamar o Post Type que eu criei

Eu criei um Post Type chamado "Cursos": no painel, até aí tdo tranquilo! Meu problema é chamar essa encrenca! rsrsrsr

Eu tentei referenciar porém a minha dificuldade está no fato de não ser no tema do zero! Eu baixei um template e queria customizar esse template, colocando em APENAS uma página (A página de cursos, que está em um item de menu). O tema que estou usando é o "bluestreet", então tentei chamar na página em que ele carrega os posts das páginas (fullwidth.php) que vem de herança de outro tema (wallstreet).

Arquivo: functions.php

//adicionei o item "Agenda"
add_theme_support( 'post-thumbnails' );

//Adicionei essa função para aparecer "Cursos" no painel adm WP
function cadastrando_post_type_cursos() {
    $nomeSingular = 'Curso';
    $nomePlural = 'Cursos';
    $description = 'Cursos que realizei';

    $labels = array(
        'name' => $nomePlural,
        'name_singular' => $nomeSingular,
        'add_new_item' => 'Adicionar novo ' . $nomeSingular,
        'edit_item' => 'Editar ' . $nomeSingular
    );

    $supports = array(
        'title',
        'editor',
        'thumbnail'
    );

    $args = array(
        'labels' => $labels,
        'description' => $description,
        'public' => true,
        'menu_icon' => 'dashicons-book-alt',
        'supports' => $supports
    );

     register_post_type( 'curso', $args);    
}

    add_action('init', 'cadastrando_post_type_cursos');

Arquivo: fullwidth.php:

<?php 
/*
Template Name: Full Width Page
*/
get_header(); ?>
<!-- Page Title Section -->
<?php get_template_part('index', 'breadcrumb'); ?>
<!-- /Page Title Section -->
<!-- Blog & Sidebar Section -->
<div class="container">
    <div class="row">        
        <!--Blog Area-->
        <div class="col-md-12">
        <?php the_post(); ?>
            <div class="blog-detail-section">
                <?php if(has_post_thumbnail()){ ?>
                <?php $defalt_arg =array('class' => "img-responsive"); ?>
                <div class="blog-post-img">
                    <?php the_post_thumbnail('', $defalt_arg); ?>
                </div>
                <?php } ?>
                <div class="clear"></div>
                <div class="blog-post-title">
                    <div class="blog-post-title-wrapper" style="width:100%";>
                        <?php the_content(); ?>
                        <!--INICIO TESTE-->
                        <h1>TESTE PRI!</h1>
                        <?php 
                        $args = array( 'post_type' => 'curso' );
                        $loop = new WP_Query( $args );
                        if( $loop->have_posts() ) { ?>
                        <ul class="cursos-listagem">
                            <?php while( $loop->have_posts() ) {
                                $loop->the_post();
                            ?>
                        }
                        </ul>
                        <!--FIM TESTE-->
                    </div>
                </div>    
            </div>
            <?php comments_template('',true); ?>
        </div>        
        <!--/Blog Area-->
</div>
</div>
<?php get_footer(); ?>    <!--Essa é a linha 47 que ele reclama-->

Acho que no código acima eu acabei chamando 2x o "the_post" mas eu não sei como fazer!!! :-(

==>> Então, ao executar a página estoura o erro: Parse error: syntax error, unexpected end of file in C:\wamp64\www\coachingcac\wp-content\themes\wallstreet\fullwidth.php on line 47

==>> Então estou cheia de problemas pra atingir meu objetivo!! 1) Como fazer pra referenciar sem dar erro!? Estou fazendo tdo errado né?? 2) Como colocar a condição pra só exibir esse conteúdo de curso APENAS se a página for a de cursos

Alguém pode me socorrer?

1 resposta

Oi Priscila, tudo bom?

Não sou especialista em Wordpres, mas produzo conteudo em PHP aqui pra alura. Normalmente esse erro:

Parse error: syntax error, unexpected end of file

Está relacionado a algum problema de fechamento de chaves, ou um ponto e virgula faltando. Dei uma olhada no seu código e procurei pela quantidade de vezes que o character '{' aparece. Para que esteja certo, ao procurar a quantidade de vezes que o character '}' aparece deve ser a mesma. No nosso caso, tinhamos 3 '{' e apenas 2 '{'. Dei uma procurada no seu código e encontrei onde faltava fechar a chave =)

<?php 
/*
Template Name: Full Width Page
*/
get_header(); ?>
<!-- Page Title Section -->
<?php get_template_part('index', 'breadcrumb'); ?>
<!-- /Page Title Section -->
<!-- Blog & Sidebar Section -->
<div class="container">
    <div class="row">        
        <!--Blog Area-->
        <div class="col-md-12">
        <?php the_post(); ?>
            <div class="blog-detail-section">
                <?php if(has_post_thumbnail()){ ?>
                    <?php $defalt_arg =array('class' => "img-responsive"); ?>
                    <div class="blog-post-img">
                        <?php the_post_thumbnail('', $defalt_arg); ?>
                    </div>
                    <?php } ?>
                    <div class="clear"></div>
                    <div class="blog-post-title">
                        <div class="blog-post-title-wrapper" style="width:100%";>
                            <?php the_content(); ?>
                            <!--INICIO TESTE-->
                            <h1>TESTE PRI!</h1>
                            <?php 
                            $args = array( 'post_type' => 'curso' );
                            $loop = new WP_Query( $args );
                            if( $loop->have_posts() ) { ?>
                                <ul class="cursos-listagem">
                                    <?php while( $loop->have_posts() ) {
                                        $loop->the_post();
                                    ?>
                                }
                                </ul>
                                <?php } ?>
                            <!--FIM TESTE-->
                        </div>
                    </div>    
            </div>
            <?php comments_template('',true); ?>
        </div>        
        <!--/Blog Area-->
</div>
</div>
<?php get_footer(); ?>    <!--Essa é a linha 47 que ele reclama-->

Quanto a validação, você pode utilizar o array Server, para pegar o valor da URI:

$_SERVER['REQUEST_URI']

Com isso, você pode verificar se a URI é a que você espera, para tomar uma decisão. Por exemplo:

if($_SERVER['REQUEST_URI'] == "UriQueVoceEspera"){
    // executa oq você quer
}

Espero ter ajudado!

Abraço e bons estudos