更改 WordPress Sticky Class 名称
Changing WordPress Sticky Class Name
不幸的是,Foundation 和 WordPress 都使用 "sticky" class。为了避免这种情况,我总是使用一个小函数将 WordPress 的 class 更改为 'wp-sticky'。但是,该功能现在似乎正在将 class 应用于每个 post(包括非粘性 posts)。
function remove_sticky_class($classes) {
$classes = array_diff($classes, array("sticky"));
$classes[] = 'wp-sticky';
return $classes;
}
add_filter('post_class','remove_sticky_class');
关于如何仅更改粘性 class 名称(而不是将其应用于所有 post)有什么想法吗?
编辑:在粘性 post 上用 'wp-sticky' 替换 'sticky',但是,它也将其添加到非粘性 post 上。
它可能从来没有像最初预期的那样工作。问题是在将 'wp-sticky'
添加到数组之前,没有条件检查 'sticky'
是否在 $classes
数组中。
function remove_sticky_class( $classes ) {
if ( in_array( 'sticky', $classes, true ) ) {
$classes = array_diff($classes, array('sticky'));
$classes[] = 'wp-sticky';
}
return $classes;
}
add_filter( 'post_class', 'remove_sticky_class' );
不幸的是,Foundation 和 WordPress 都使用 "sticky" class。为了避免这种情况,我总是使用一个小函数将 WordPress 的 class 更改为 'wp-sticky'。但是,该功能现在似乎正在将 class 应用于每个 post(包括非粘性 posts)。
function remove_sticky_class($classes) {
$classes = array_diff($classes, array("sticky"));
$classes[] = 'wp-sticky';
return $classes;
}
add_filter('post_class','remove_sticky_class');
关于如何仅更改粘性 class 名称(而不是将其应用于所有 post)有什么想法吗?
编辑:在粘性 post 上用 'wp-sticky' 替换 'sticky',但是,它也将其添加到非粘性 post 上。
它可能从来没有像最初预期的那样工作。问题是在将 'wp-sticky'
添加到数组之前,没有条件检查 'sticky'
是否在 $classes
数组中。
function remove_sticky_class( $classes ) {
if ( in_array( 'sticky', $classes, true ) ) {
$classes = array_diff($classes, array('sticky'));
$classes[] = 'wp-sticky';
}
return $classes;
}
add_filter( 'post_class', 'remove_sticky_class' );