Cambiar el nombre de la 'Plantilla Predeterminada'

12 abr 2012, 16:06:05
Vistas: 22.3K
Votos: 5

Estoy trabajando en el sitio de un cliente y necesitan seleccionar una Plantilla cada vez que agregan una nueva página; la "Plantilla Predeterminada" no es una opción válida.

Me gustaría renombrar "Plantilla Predeterminada" a algo como "-- Seleccionar Plantilla --".

Buscando en el código base de WordPress encontré referencias a "Plantilla Predeterminada" que están hard-codeadas en wp-admin/includes/meta-boxes.php (línea 588) y wp-admin/includes/class-wp-posts-list-table.php (línea 882). ¿Significa esto que actualmente no hay forma de cambiar esto sin alterar el código core (algo que quiero evitar)?

4
Comentarios

¿Puedes explicar por qué "Plantilla por defecto" no es una opción válida?

Chip Bennett Chip Bennett
12 abr 2012 16:09:04

Porque estoy usando Advanced Custom Fields y dependiendo del tema que selecciones, aparece un conjunto completamente diferente de campos, no hay uno que podamos establecer como "Por defecto" y estar satisfechos con ello.

Shaun Shaun
12 abr 2012 19:29:33

Pero algo tiene que ser el valor por defecto. En WordPress, las Páginas estáticas deben tener una Plantilla, y siempre recurrirán a page.php y luego a index.php.

Chip Bennett Chip Bennett
12 abr 2012 21:15:38

Podría hacerse con jQuery/JS supongo, si realmente quieres forzarlo, aunque naturalmente un usuario podría saltarse la restricción desactivando JS o bloqueando el archivo de script que impone la elección de plantilla.

t31os t31os
13 abr 2013 22:18:12
Todas las respuestas a la pregunta 4
0

Existe un filtro para esto desde la versión 4.1; ver https://github.com/WordPress/WordPress/commit/7cdbac53e8497b346d1009375d36586fb6e5197c

Ahora puedes usar:

add_filter('default_page_template_title', function() {
    return __('Mi nombre de plantilla predeterminada', 'your_text_domain');
});
18 nov 2015 14:30:00
1

Estoy de acuerdo con la respuesta proporcionada por @TravisPflanz, pero si solo deseas cambiar el nombre que viene por defecto en el núcleo de WordPress, puedes usar el siguiente filtro.

function yourprefix_filter_gettext( $translation, $text, $domain ) {
    if ( $text == 'Default Template' ) {
        return __( 'Página de Detalle', 'your-theme-or-plugin-textdomain' );
    }
    return $translation;
}
add_filter( 'gettext', 'yourprefix_filter_gettext', 10, 3 );    

Esto reemplaza la traducción predeterminada del núcleo con una propia.

Por favor, renombra yourprefix y your-theme-or-plugin-textdomain según tu configuración

25 feb 2014 13:09:46
Comentarios

Algunas notas: las verificaciones estrictas (===) son más rápidas. Y deberías eliminar la acción cuando encuentres la cadena. Este filtro se ejecuta varios miles de veces durante cada solicitud y tiene un gran impacto en el rendimiento.

kaiser kaiser
25 feb 2014 13:43:44
2

Por lo que entiendo, tu solicitud es crear una selección vacía como valor predeterminado en el desplegable de plantillas de página, para luego obligar al usuario a seleccionar una plantilla personalizada.

Esta puede ser una respuesta demasiado simplificada, pero lo ideal sería crear una plantilla predeterminada que sea una opción válida, y luego ofrecer otras plantillas como alternativas a la "Plantilla Predeterminada". Simplemente haz que la predeterminada sea el diseño de página más básico posible. Esto también eliminará confusiones para el usuario. Determina cuál será el diseño de página más común y hazlo el "Predeterminado".

Como menciona Chip más abajo, la "Plantilla Predeterminada" siempre existe, incluso si intentas cambiar su nombre usando los métodos tradicionales de nomenclatura de plantillas. Si cambias el nombre de la plantilla page.php, simplemente se te darán las opciones de "Plantilla Predeterminada" y la "Nueva y Genial Plantilla de Página".

12 abr 2012 16:21:40
Comentarios

La "Plantilla por Defecto" siempre existe, como se define en la Jerarquía de Plantillas de WordPress para Páginas estáticas.

Chip Bennett Chip Bennett
12 abr 2012 17:08:54

OK gracias. Como comenté anteriormente, realmente necesitamos que elijan un tema ya que no hay un estilo bueno que podamos establecer automáticamente como "Por Defecto" y con el que estemos satisfechos. Tendremos que dejarlo como está, y decirles que cambien de "Tema por Defecto" a cualquier otro.

Shaun Shaun
12 abr 2012 19:31:24
0

Tuve problemas al usar un nuevo page.php en el tema hijo para definir una plantilla predeterminada diferente, así que en su lugar utilicé un

add_action( 'after_setup_theme'...

para configurar una opción global usando

update_option ('default_template','page-content.php');

Luego usé

function replace_page_attributes_metaboxes() {
    add_meta_box('post-parent', 'Atributos de página', 'attributes_meta_box', 
             'page', 'side', 'high');
    remove_meta_box('pageparentdiv', 'page', 'side'); 
} 
add_action( 'admin_menu' , 'replace_page_attributes_metaboxes' );

para eliminar el cuadro meta estándar de Atributos de página que se usa para definir la Plantilla de página y reemplazarlo con una copia del código (ver http://wpseek.com/page_attributes_meta_box/). Reemplacé la sección del código que encuentra el nombre de la plantilla de página con:

if ( ($post->post_type == 'page')  && (count( get_page_templates() ) != 0) ) {
    if (!empty($post->page_template))
        $template = $post->page_template;
    else
        $template =     get_option ('default_template');
}

si no se encuentra ninguna opción, $template se establece como falso, lo que hace que el código subyacente seleccione la plantilla predeterminada estándar.

13 abr 2013 22:03:09