¿Consulta el tipo de publicación personalizada? [cerrado]

12

He instalado el complemento de UI de tipo de publicación personalizado . Después de la activación de este complemento, he creado un tipo de publicación personalizado llamado portfolio . Ahora quiero usar esto en la página de cartera en el front-end. ¿Cómo obtengo todas las publicaciones que sean del tipo de publicación personalizada portfolio ?

    
pregunta shalu 06.01.2011 - 11:14

3 respuestas

19
query_posts( array( 'post_type' => array('post', 'portfolio') ) );

que muestra tanto las publicaciones normales como las publicaciones dentro de portfolio type

o

query_posts('post_type=portfolio');

para solo portfolio .

Use as normal WP Query - lea el Códice: enlace y enlace

<?php 
    query_posts(array( 
        'post_type' => 'portfolio',
        'showposts' => 10 
    ) );  
?>
<?php while (have_posts()) : the_post(); ?>
        <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
        <p><?php echo get_the_excerpt(); ?></p>
<?php endwhile;?>
    
respondido por el Martin-Al 06.01.2011 - 11:33
13

La respuesta tardía como la respuesta principal utiliza query_posts() , que nunca debe hacerse

Usa un filtro

Use el filtro pre_get_posts y simplemente configure el tipo de publicación portfolio para la consulta principal. Use Etiquetas condicionales para determinar dónde quiere tener este filtro.

Ejemplo rápido

<?php
defined( 'ABSPATH' ) OR exit;
/* Plugin Name: (#6417) "Portfolio" post type in query */

add_filter( 'pre_get_posts', 'wpse_6417_portfolio_posts' );
function wpse_6417_portfolio_posts( $query )
{
    if (
        ! $query->is_main_query()
        // Here we can check for all Conditional Tags
        OR ! $query->is_archive() // For e.g.: Every archive will feature both post types
    )
        return $query;

    $query->set( 'post_type', array( 'post', 'portfolio' ) );

    return $query;
}

Descargo de responsabilidad

El código anterior es un complemento, pero puede simplemente rellenarse en el archivo functions.php de su tema (que no recomienda).

    
respondido por el kaiser 27.05.2013 - 15:42
4

Agregue este código a su archivo de funciones de temas secundarios (recomendado) para agregar sus páginas CPT únicas a su bucle principal

add_action( 'pre_get_posts', 'add_custom_post_types_to_loop' );

function add_custom_post_types_to_loop( $query ) {

if ( is_home() && $query->is_main_query() )

$query->set( 'post_type', array( 'post', 'portfolio' ) );

return $query;

}

Fuente enlace

O cree una costumbre plantilla de página archive-portfolio.php que solo mostrará sus páginas de CPT. Esto solo debe hacerse si no ha agregado una página de archivo con la configuración del complemento.

Ejemplo: 'has_archive' = > cierto,

También puede controlar cuántas páginas se muestran y el orden en que se muestran en la página de archivo con este código:

add_action( 'pre_get_posts', 'cpt_items' );

function cpt_items( $query ) {

if( $query->is_main_query() && !is_admin() && is_post_type_archive( 'portfolio' ) ) {

$query->set( 'posts_per_page', '8' );

$query->set( 'order', 'ASC' );

    }

}
    
respondido por el Brad Dalton 11.12.2013 - 01:02

Lea otras preguntas en las etiquetas