Wordpress:对于100页网站,使用100页模板或1包含功能?

时间:2015-08-31 06:55:49

标签: php wordpress

我现在正在为我在Wordpress中创建的所有页面使用不同的页面模板。我正在为一家公司使用WordPress for Intranet Portal。 对于我构建的所有页面,我需要不同的PHP代码。

100页网站的正确方法是什么?为所有页面创建自己的页面模板,并将其放到主题/.../页面模板或创建一个页面:

<?php 
switch($current_page_name) {
   case "about-us";
include(site_url('/pages/about-us.php'));
   break;
   case "contact-form";
include(site_url('/pages/contact-form.php'));
   break;
}
?>

但是如何获得$ current_page_name变量?例如我有页面: http://192.168.210.140/sales-funnel/todolist/ 我认为,需要:

case "sales-funnel/todolist/";

是否正确,创建 themes \ twentyten \ page-templates \ one-column.php

<?php
/**
 * Template Name: Main template one-column
 */
 add_action('template_redirect','my_redirect');

        function my_redirect(){
            get_header();
            echo '
            <div id="container" class="one-column">
            <div id="content" role="main">  
            ';
            global $wp; //global $wp object it will return us request
            global $wpdb;
            echo $wp->request;
            switch($wp->request) {

                 case "sales-funnel/todolist":
                 status_header( 200 );  
                 include (TEMPLATEPATH . '/pages/sf/todolist.php');
                 break;
                 case "sales-funnel/add-deal":
                 status_header( 200 );  
                 include (TEMPLATEPATH . '/pages/sf/add-deal.php');
                 break;
            }
            echo '
            </div><!-- #content -->
            </div><!-- #container -->
            ';
            get_footer();
                exit;
        }
        my_redirect()
?>

并使用它例如50页,只需在这个文件中添加一个case语句?

2 个答案:

答案 0 :(得分:1)

你可以使用template_redirect hook:

 add_action('template_redirect','my_redirect');

        function my_redirect(){
            global $wp; //global $wp object it will return us request

            switch($wp->request) {

                 case "sales-funnel/todolist":
                 status_header( 200 );  
                 include (TEMPLATEPATH . '/my-page-template.php');
                 break;
                 // Todo add more cases here
            }
                exit;
        }

如果您想更改每个页面的标题,那么您也可以使用wp_title过滤器。

答案 1 :(得分:1)

首先,如果你真的有100个不同的模板用于一个网站,你应该考虑一下。你真的需要那么多模板吗?通常,Wordpress网站在大多数情况下不应该有超过十个模板。也许在网页设计上有些不对劲,或者选择Wordpress并不是你项目的最佳选择。

任何方式,正确的继续进行方式如下所述:创建一个模板文件,顶部有注释命名模板,并在编辑页面时在模板下拉列表中选择它。尝试只有少数几个,正如你所说的“带侧边栏的页面”,“没有侧边栏的页面”等应该足够了。

然后,使用页面内容构建整个页面。您可以执行一些shortcodes以显示特定的块,或者custom fields可以将一些布尔值发送到模板(在侧边栏中显示或不显示此内容等)。使用Custom Field SuiteAdvanced Custom Fields等插件,您可以轻松地为特定模板创建字段组。最后,对于小部件,您可以使用Widgets Context来隐藏/显示特定部分的小部件。