大家好,我是FUNION数字营销实战派飞小优,今天跟大家讲一个经常用到的案例——自定义文章详情模板。
如果想让某个分类的文章页面样式有别于其它分类,我们可以使用自定义的模板的方法实现。例如,我们准备让名称为WordPress的分类文章使用有别于其它分类的模板样式,
首先在所用主题根目录新建一个名称 single-wordpress.php的模板文件。将以下代码片段添加到您的当前主题的 functions.php 文件:
add_action('template_include', 'load_single_template');
function load_single_template($template) {
$new_template = '';
// single post template
if( is_single() ) {
global $post;
// 'wordpress' is category slugs
if( has_term('wordpress', 'category', $post) ) {
// use template file single-wordpress.php
$new_template = locate_template(array('single-wordpress.php' ));
}
}
return ('' != $new_template) ? $new_template : $template;
}
上面的代码将指定WordPress分类的文章,使用 single-wordpress.php 模板文件。同理,你可以重复以上的步骤,让其它分类也可以使用自定义模板。
若是针对多个分类ID绑定同一个文章模板呢?也非常简单,代码如下:
add_action('template_include', 'load_single_template');
function load_single_template($template) {
$new_template = '';
// 定义需要使用同一模板的分类ID数组
$target_category_ids = array(3, 7, 9); // 这里替换为实际的分类ID
if (is_single()) {
global $post;
$categories = wp_get_post_terms($post->ID, 'category', array('fields' => 'ids'));
// 检查当前文章是否属于目标分类ID中的任意一个
$intersection = array_intersect($categories, $target_category_ids);
if (!empty($intersection)) {
// 使用同一个自定义模板,这里假设模板名为single_custom.php
$new_template = locate_template(array('single_custom.php'));
}
}
return (''!= $new_template)? $new_template : $template;
}
以上就是关于wordpress如何自定义文章详情页模板教程,更多内容请持续关注飞小优!