¿Es posible usar una única publicación personalizada como página principal del sitio?

3

Sé que puedo establecer una página estática como página de inicio, pero ¿es posible configurar una única publicación personalizada como la página principal del sitio?

Creé un tipo de publicación personalizada llamada "cartera" donde los usuarios pueden agregar todo el trabajo que han realizado como publicaciones y necesito que una de esas publicaciones se muestre como la página de inicio, exactamente como si configurara una página principal estática configuración de lectura.

Gracias de antemano!

    
pregunta Javier Villanueva 15.02.2012 - 21:07

4 respuestas

9

No quieres que publicación sea la primera página, quieres que una entrada personalizada tipo sea la primera página. Ahora que tenemos la terminología correcta, es posible.

Una vez, un cliente me pidió que hiciera exactamente lo mismo. Tenían un tipo de publicación personalizada que necesitaban mostrarse en la página principal. Hacerlo fue tan simple como agregar un filtro para permitirles seleccionar una "pila" (su tipo de publicación personalizada) desde la página de lectura:

function add_pages_to_dropdown( $pages, $r ){
    if ( ! isset( $r[ 'name' ] ) )
        return $pages;

    if ( 'page_on_front' == $r[ 'name' ] ) {
        $args = array(
            'post_type' => 'portfolio'
        );

        $portfolios = get_posts( $args );
        $pages = array_merge( $pages, $portfolios );
    }

    return $pages;
}
add_filter( 'get_pages', 'add_pages_to_dropdown', 10, 2 );

Entonces solo es cuestión de diseñar tus plantillas para usar los datos correctamente.

    
respondido por el EAMann 15.02.2012 - 21:42
2

Hay muchas maneras de lograr esto, aunque algunas son más avanzadas que otras:

  1. Marque la publicación del blog como pegajosa y luego establezca Publicaciones por página en 1 ( Dashboard -> Settings -> Reading )
  2. Cree una plantilla personalizada front-page.php y consulte la publicación en cuestión, ya sea a través de la denominación de publicación pegajosa , o mediante la meta personalizada de publicación
  3. Cree una plantilla personalizada front-page.php y cree una barra lateral dinámica (es decir, área de widgets), en la que agrega un widget para mostrar la publicación en cuestión
  4. (Inserta muchos otros métodos aquí ...)

Pero tengo que preguntar: ¿por qué no colocar el contenido de la publicación en el blog en una página estática y luego asignar esa página estática como la página principal?

Editar

Basado en la aclaración de su pregunta:

  

Bueno, es un requisito del cliente, creé un tipo de publicación personalizada llamada "cartera" en la que agrega todo el trabajo que ha realizado y solo quiere que una de esas publicaciones se muestre como la página de inicio, exactamente como si fuera un frente estático. página en la configuración de lectura, actualizando la pregunta.

Debería usar uno de los siguientes métodos:

  1. Filtre el desplegable page_on_front , como sugiere @EAMann
  2. Cree un archivo de plantilla front-page.php , que consulte la publicación correcta de la Cartera, a través de meta personalizada u otros medios
respondido por el Chip Bennett 15.02.2012 - 21:25
1

¿Qué te parece configurar un meta campo personalizado para "Usar como página de inicio"? Luego, consulta ese meta y obtén la (s) publicación (es) asociada (s) y obtén la salida ... naturalmente, todo esto estaría en front-page.php

    
respondido por el mor7ifer 15.02.2012 - 21:40
1

La respuesta de EAMann es buena, pero no hace nada si no hay páginas en absoluto en la base de datos (ya que la opción para elegir páginas frontales estáticas está oculta si no se crean páginas). Este es mi intento de arreglar esto:

add_filter('get_pages', function ($pages, $r) {
    if (function_exists('get_current_screen') && 'options-reading' === get_current_screen()->id) {
        $pages = array_merge($pages, get_posts(['post_type' => 'area']));
    }

    return $pages;
}, 10, 2);

(Donde 'área' debe sustituirse con el nombre de tu tipo de publicación personalizada.)

    
respondido por el fiskhandlarn 28.05.2018 - 16:21

Lea otras preguntas en las etiquetas