以‘确认-’开头的页面的单一页面模板

时间:2016-02-09 作者:James

我正在尝试设置一个单页模板,该模板将应用于URL以确认开头的任何页面。

例如(页面名称):

confirmation-tt5,
confirmation-556,
我应该创建一个single-confirmation 或者我需要一个自定义过滤器?

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

我们可以利用page_template 过滤以实现此目的。我们需要做的就是确保confirmation 是页面标题中的第一个单词

add_filter( \'page_template\', function ( $template )
{
    // Get the current page object
    $post = get_queried_object();

    /**
     * Get the first instance of confirmation, if it is not 0, bail
     * We will be using the page name, which is the slug
     */
    if ( 0 !== stripos( $post->post_name, \'confirmation\' ) )
        return $template;

    // We have confimation as first word, lets continue
    $locate_template = locate_template( \'page-confirmation.php\' );

    // Check if $locate_template is not empty, if so, bail
    if ( !$locate_template )
        return $template;

    // page-confirmation.php exist, return it
    return $locate_template;
});

SO网友:James

$url = \'http://\' . $_SERVER[\'SERVER_NAME\'] . $_SERVER[\'REQUEST_URI\'];
if (strpos($url,\'confirmation\') == true) {

    include(locate_template(\'page-confirmation.php\'));

}
我设法想出了这个解决方案,但不是很优雅,因为这段代码需要设置为默认值page.php, 我更喜欢某种类型的动态过滤器。

相关推荐