要在WordPress中为每个页面和每个类别创建样式表,您需要遵循以下步骤:

1. 首先,在您的WordPress网站管理中心中,导航到外观->编辑器。

2. 在编辑器中,找到您的主题中的style.css文件,这是您的主题的默认样式表。

3. 复制整个style.css文件的内容。

4. 创建一个新的CSS文件,命名为page.css。如果您希望为某个类别创建样式表,请用category-CATEGORYNAME.css命名,其中CATEGORYNAME是您的类别的实际名称。

5. 在page.css或category-CATEGORYNAME.css文件中,粘贴您刚刚复制的样式表内容。

6. 现在您可以在新的样式表中编辑和自定义页面或类别的样式。

7. 在您完成所有更改后,保存新的样式表。

8. 为了将新的样式表应用到每个页面或类别,请在页面或类别编辑器中将其添加为附加CSS。

在这里,您已经成功地为每个页面和每个类别创建了自己的样式表。现在,您可以根据各自的需求和喜好对它们进行编辑和自定义。

 

以下是具体的步骤:

用wordpress做网站时经常会需要子分类使用父分类模板,子分类文章页使用父分类文章页模板,不同分类使对应分类模板,或者多个分类共用一个模板,多个单页共用一个模板或者不同单页使用不同的模板,又或者让文章页和分类页一样,可以根据分类别名自动识别对应的文章模板。

虽然wordpress给了我们默认模板文件,但现实使用中却是远远无法满足我们的使用要求的!那么如何实现上面的提到的模板对应方法呢?首先我们要熟悉wordpress内定的文件结构规则,具体方法如下!

1、wordpress分类栏目指定自定义模板

a、category.php             默认分类模板
b、category-别名.php
分类别名实现不同分类使用不同模板,后台分类目录名称后有一个别名 ,系统会根据分类别名自动调用对应的模板(例:category-news.php )

c、category-id.php
分类id实现自定义模板  系统会根据分类id 自动获取与之对应的模板 。如果没有对应模板会调用默认模板 (例:category-2.php )

d、子分类页面使用父分类模板 ,在function.php中添加如下代码(例:新闻中:行业新闻,公司新闻公共一个模板)结合上面的 b方法 或者c方法 使用

add_filter('category_template', 'f_category_template');


function f_category_template($template){


$category = get_queried_object();


if($category->parent !='0'){


while($category->parent !='0'){


$category = get_category($category->parent);


}


}


$templates = array();

if ( $category ) {


$templates[] = "category-{$category->slug}.php";


$templates[] = "category-{$category->term_id}.php";


}


$templates[] = 'category.php';


return locate_template( $templates );


}

2、wordpress多个分类共用一个模板与不同分类使用不同模板

根据分类别名或id判断实现,在默认分类文件category.php顶部添加如下代码

//如果分类别名为solution就调用category-case.php模板


<?php


if ( is_category('solution') ) {

include(TEMPLATEPATH . '/category-case.php');

}

?>


//如果默认模板本来就有内容会同时输出category-case.php与默认模板的内容 解决方法如下

<?php

if ( is_category('solution') ) {

include(TEMPLATEPATH . '/category-cases.php');

}else{

?>


默认模板的内容


<? } ?>

3、多个单页使用同一个模板与不同单页使用不同模板

page.php                默认单页模板
page-about.php      根据单页别名判断不同单页使用不同模板 (例:关于我们,单页别名:about)
page-id.php            根据id 联系我们模板 (联系单页别名:contact)

把我们自定义的单页模板顶部加如下代码, 之后我们可以在后台单页编辑的右侧,模板一栏选择我们的自定义单页模板了(任何单页都可以选择该模板了)

<?php /* Template Name: 关于我们模板  */ ?>

4、不同分类下的文章使用不同的文章页模板,多分类下文章使用同一文章页模板

4.1、根据分类别名判断在默认文章内容页模板single.php 添加如下代码

<?php


//多个分类别名共用一个模板


if (in_category(array('themes','plugins','develop') ) ) {


get_template_part('single-product' );






//不同分类名使用不同模板


}elseif ( in_category('themes')) {


get_template_part('single-case' );



//其他调用默认模板


}else {


get_template_part('single-default' );


}


?>



如果有子分类使用下面方法:子分类文章使用父分类文章模板


<?


//获取该文章父分类id


$typeid=(get_the_category())[0]->category_parent;


//获取该文章父分类数据


$category = get_category($typeid);


//该文章父分类别名


$category = $category->slug;



//如果分类别名,或者父分类别名是product就选择single-product.php模板


if (in_category(array('product')|| $category == "product" ) ) {


get_template_part('single-product' );


//如果分类别名是news就选择single-news.php模板


}elseif ( in_category('news')) {


get_template_part('single-news' );


}else {


//其他文章调用默认模板


get_template_part('single-default' );


}

?>

4.2、根据分类ID判断在默认文章内容页模板single.php 添加如下代码 (方法和上面一样,只是把分类别名改为了id)

//根据分类id判断


<?php


if ( in_category(array( 2,3 )) ) {//多个分类id


get_template_part('single-product' );


}elseif ( in_category( 7 )) {//单个分类id


get_template_part('single-case' );


}else {//其他调用默认模板


get_template_part('single-default' );


}


?>



如果有子分类使用下面方法:子分类文章使用父分类文章页模板


<?php


//获取父分类id


$typeid=get_the_category();


$typeid=$typeid[0]->category_parent;



if ( in_category(array(1)) || $typeid==1 ){


get_template_part('single-product');


}elseif ( in_category(3) || $typeid==3){


get_template_part('single-news' );


}else {


get_template_part('single-news' );


}


?>

4.3、让文章页和分类页一样,可以根据分类别名自动识别对应的模板(分类别名为 new 内容页会自动使用 content-new.php 做为文章页模板)

<?


$cat=get_the_category(get_the_id());


$name=$cat[0]->slug;


//自动识别文章页别名 content-别名.php


//如果没有对应的就调用content.php


get_template_part( 'content', $name );


?>

5、文章根据文章别名调用不同的模板

将下面的代码添加到当前主题的 functions.php 文件

/**


* 不同分类使用不同的文章模板


*


*/


//定义模板文件所在目录为 single 文件夹


define("SINGLE_PATH", TEMPLATEPATH . '/single');


//自动选择模板的函数


function wpdaxue_single_template($single) {


global $wp_query, $post;


//通过分类别名或ID选择模板文件


foreach((array)get_the_category() as $cat) :


if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php')) {


return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';


}elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php')){


return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';


}elseif(file_exists(SINGLE_PATH . '/single.php')){


return SINGLE_PATH . '/single.php';


}


endforeach;


}


//通过 single_template 钩子挂载函数
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。