Suporte » Questões avançadas » Custom post types + custom fields + sidebar

  • Tenho este código no meu fuctions.php do tema que estou a testar:

    /***** EVENTOS Custom Post *****/
    
    add_action( 'init', 'empevento_register' );
    
    function empevento_register() {
    
    $labels = array(
        'name' => _x('Eventos', 'post type general name'),
        'singular_name' => _x('Evento', 'post type singular name'),
        'add_new' => _x('Novo', 'evento'),
        'add_new_item' => __('Criar evento'),
        'edit_item' => __('Editar evento'),
        'new_item' => __('Novo evento'),
        'view_item' => __('Ver evento'),
        'search_items' => __('Procurar eventos'),
        'not_found' =>  __('Eventos não encontrados'),
        'not_found_in_trash' => __('Não há eventos no lixo'),
        'parent_item_colon' => '',
    );
    
    $args = array(
        'label' => __('Eventos'),
        'labels' => $labels,
        'public' => true,
        'can_export' => true,
        'show_ui' => true,
        '_builtin' => false,
        '_edit_link' => 'post.php?post=%d', // ?
        'capability_type' => 'post',
        'menu_icon' => get_bloginfo('template_url').'/images/calendar.png',
        'hierarchical' => false,
        'rewrite' => array( "slug" => "eventos" ),
        'supports'=> array('title', 'thumbnail'),
        'show_in_nav_menus' => true,
        'taxonomies' => array( 'empevento_categoria', 'empevento_local' )
    );
    
    register_post_type( 'empevento', $args);
    
    }
    
    // 2. Custom Taxonomy Registration (Tipos de eventos)
    
    function create_eventcategory_taxonomy() {
    
        $labels = array(
            'name' => _x( 'Tipos de eventos', 'taxonomy general name' ),
            'singular_name' => _x( 'Tipo de evento', 'taxonomy singular name' ),
            'search_items' =>  __( 'Procurar tipo' ),
            'popular_items' => __( 'Tipos mais usadas' ),
            'all_items' => __( 'Todos os tipos' ),
            'parent_item' => null,
            'parent_item_colon' => null,
            'edit_item' => __( 'Editar tipo' ),
            'update_item' => __( 'Atualizar tipo' ),
            'add_new_item' => __( 'Adicionar tipo' ),
            'new_item_name' => __( 'Novo tipo' ),
            'separate_items_with_commas' => __( 'Separar tipos com vírgulas' ),
            'add_or_remove_items' => __( 'Adicionar/remover tipos' ),
            'choose_from_most_used' => __( 'Escolher tipos mais usados' ),
        );
    
        register_taxonomy('empevento_tipo','empevento', array(
            'label' => __('Tipo Evento'),
            'labels' => $labels,
            'hierarchical' => true,
            'show_ui' => true,
            'query_var' => true,
            'rewrite' => array( 'slug' => 'empevento_tipo' ),
        ));
    
    }
    
    add_action( 'init', 'create_eventcategory_taxonomy', 0 );
    
    // 3. Paineis das datas e locais
    
    add_action("admin_init", "admin_init");
    add_action('save_post', 'save_data');  
    
        function admin_init(){
            add_meta_box("eventinfo-meta", "Dados do evento", "meta_options", "empevento", "normal", "high");
        }  
    
        function meta_options(){
            global $post;
            $custom = get_post_custom($post->ID);
            $data = $custom["data"][0];
            $cidade = $custom["cidade"][0];
            $morada = $custom["morada"][0];
            $redirect = $custom["redirect"][0];
    ?>
        <label>Data (yyyy.mm.dd):&nbsp;</label><input name="data" type="date" value="<?php echo $data; ?>" maxlength="10" size="12" />
        <label>Cidade:&nbsp;</label><input name="local" value="<?php echo $cidade; ?>" maxlength="100" size="20" />
        <label>Morada:&nbsp;</label><input name="morada" value="<?php echo $morada; ?>" maxlength="100" size="60" /><br />
        <label>Redireccionar:&nbsp;</label><input name="redirect" value="http://www.worldspreads.com/pt/default/getting_started/seminars.aspx" maxlength="70" size="70" />
    <?php
        }  
    
    function save_data(){
        global $post;
        update_post_meta($post->ID, "data", $_POST["data"]);
        update_post_meta($post->ID, "cidade", $_POST["cidade"]);
        update_post_meta($post->ID, "morada", $_POST["morada"]);
        update_post_meta($post->ID, "redirect", $_POST["redirect"]);
    }

    Como é que eu ponho um widget a mostrar os custom posts definidos por data (que é um custom field)?

    Obrigado!

A visualizar 1 resposta (de um total de 1)
A visualizar 1 resposta (de um total de 1)
  • O tópico ‘Custom post types + custom fields + sidebar’ está fechado a novas respostas.