wordpress - Wordpress:使用 add_filter 函数将类添加到 div
问题描述
我以前使用该add_filter()
函数向主体添加一个类,如下所示:
add_filter( 'body_class', 'add_custom_class' );
function add_custom_class( $classes ) {
if ( is_single() ) {
$classes[] = 'post';
}
return $classes;
}
我希望能够使用这些方法将类添加到 div:
add_filter( 'div_class', 'add_custom_class' );
function add_custom_class( $classes ) {
if ( is_single() ) {
$classes[] = 'post';
}
return $classes;
}
或者更好:
add_filter( 'div_class', 'add_custom_class' );
function add_custom_class( $classes ) {
if ( is_single() ) {
$classes[] = 'post';
}
else if ( is_singular( 'custom-post-type' ) ) {
$classes[] = 'custom-post-type-class';
}
return $classes;
}
然后像这样在我的主题中拉入课程:
<div class="wrapper <?php echo div_class(); ?>">
这可能吗?提前致谢!
解决方案
是的,这是完全可能的。
function so50582899_div_class($classes) {
global $post;
if(is_single()) {
$classes[] = 'single-post';
} elseif(is_page()) {
$classes[] = 'page'
}
return $classes;
}
add_filter('post_class', 'so50582899_div_class');
然后你可以这样称呼它<div class="<?php post_class(); ?>">
编辑:要删除所有现有的类,请添加$classes = array();
到函数的顶部。这将重置返回的类,并且只返回您在函数中设置的类。
所以它最终会像:
function so50582899_div_class($classes) {
global $post;
$classes = array();
if(is_single()) {
$classes[] = 'single-post';
} elseif(is_page()) {
$classes[] = 'page'
}
return $classes;
}
add_filter('post_class', 'so50582899_div_class');
参考:https ://codex.wordpress.org/Function_Reference/post_class#Add_Classes_By_Filters
推荐阅读
- c# - RestRequestAsyncHandle.Abort() 不会触发 CancellationToken.IsCancellationRequested
- python - 我最多可以更改多少次按钮的背景?
- python - 两个 3D 张量之间的点积
- c - 如何从 VM 写入 azure 中启动诊断的串行日志?
- javascript - 如何使用纯 JavaScript 在给定时间内增加或减少进度条宽度?
- php - 从字符串中删除非 HTML 标签
- ios - 即使客户端 id 是正确的,它在授权回调中给出无效的 client_id 消息
- sql - 根据与要加入的值关联的列加入不同的表?
- node.js - 如何在詹金斯中将nodejs服务器作为后台任务运行并在自动构建时重新启动服务器?
- c# - 无法通过 ID 访问元素