更改‘默认模板’的名称

时间:2012-04-12 作者:Shaun

我在客户的网站上工作,他们需要在添加新页面时选择模板;“默认模板”不是有效的选择。

我想将“Default Template”重命名为“-Select Template--”。

搜索WordPress代码库时,我发现对“默认模板”的引用是硬编码的,位于wp admin/includes/meta框中。php(第588行)和wp admin/INCLUDE/class wp posts列表。php(第882行)。这是否意味着如果不改变核心代码(我想避免的事情),目前没有办法改变这一点?

4 个回复
最合适的回答,由SO网友:alpipego 整理而成

自版本4.1起,有一个用于此的筛选器;查阅https://github.com/WordPress/WordPress/commit/7cdbac53e8497b346d1009375d36586fb6e5197c

您现在可以使用:

add_filter(\'default_page_template_title\', function() {
    return __(\'My default template name\', \'your_text_domain\');
});

SO网友:K.Rijpstra

我同意@TravisPflanz给出的答案,但如果您只想更改WordPress core提供的名称,可以使用以下过滤器。

function yourprefix_filter_gettext( $translation, $text, $domain ) {
    if ( $text == \'Default Template\' ) {
        return __( \'Detail Page\', \'your-theme-or-plugin-textdomain\' );
    }
    return $translation;
}
add_filter( \'gettext\', \'yourprefix_filter_gettext\', 10, 3 );    
这将用您自己的核心翻译替换默认的核心翻译。

请重命名yourprefixyour-theme-or-plugin-textdomain 到您的配置

SO网友:Travis Pflanz

Your request, if I\'m not mistaken, is to create an empty selection as the default for the page template drop-down, then force a user to select a custom page template.

This may be an over-simplified answer, but you should create a default template that is a valid choice, then offer other templates to supplement the "Default Template". Just make default the most basic possible page layout. This will eliminate confusion for the user as well. Just determine which will be the most common page layout and make it the "Default".

As Chip points out below, the "Default Template" always exists, even if you simply try to change the name using the traditional template naming methods. If you change the template name of page.php, you will simply be given the options of "Default Template" and the "New & Cool Page Template".

SO网友:Nigel Dyer

我在使用新页面时遇到问题。php在子主题中定义不同的默认模板,因此我使用

add_action( \'after_setup_theme\'...
要设置全局选项,请使用

update_option (\'default_template\',\'page-content.php\');
然后我使用

function replace_page_attributes_metaboxes() {
    add_meta_box(\'post-parent\', \'Page attributes\', \'attributes_meta_box\', 
             \'page\', \'side\', \'high\');
    remove_meta_box(\'pageparentdiv\', \'page\', \'side\'); 
} 
add_action( \'admin_menu\' , \'replace_page_attributes_metaboxes\' );
要删除用于定义页面模板的标准页面属性元框,并将其替换为代码副本(请参见http://wpseek.com/page_attributes_meta_box/). 我将查找页面模板名称的代码部分替换为:

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\');
}
如果未找到任何选项,$template设置为false,这使基础代码选择标准默认模板。

结束

相关推荐

Enable page templates. How?

基本问题,但我想启用页面模板。我有一个启用了页面模板的主题。我切换到了另一个模板,但没有更改模板的选项,即使在创建新页面时也是如此。如何打开此选项?我在抄本和论坛上找到了根,但找不到。