向POST添加自定义CSS类

时间:2012-09-04 作者:James B

本质上,我需要能够在post显示在列表中时向其添加一个类(比如index.php),所以当在后端时,可以说oneCol、twoCol、threeCol,然后它将在循环post类中输出这个类。

这是为了更严格地控制布局。使用这行代码作为输出?

<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>
提前感谢!

2 个回复
最合适的回答,由SO网友:amit 整理而成

注-

我建议在另一个答案中使用Chip Bennett建议的钩子

Here\'s the modified version of that filter -

function wpse_filter_post_class( $classes ) {
    $my_post_class = get_post_meta($post->ID, "your_meta_name");

    if( $my_post_class != \'\' )
      $classes[] = $my_post_class;

    return $classes;
}
add_filter( \'post_class\', \'wpse_filter_post_class\' );
您可以为此设置自定义文件-See usage, 然后使用get_post_meta() 函数获取它并显示所需位置

Example -

<?php echo get_post_meta($post->ID, "your_meta_name", true)?>
这将输出meta_key.

OR ( Update #1 ) -将变量传递到Post Class

<?php $my_class = get_post_meta($post->ID, "your_meta_name") ?>
<div id="post-<?php the_ID(); ?>" <?php post_class( $my_class ); ?>>

SO网友:Chip Bennett

There\'s a filter for that.

示例:

function wpse_filter_post_class( $classes ) {
    // How you determine what class is up to you;
    // We will assume you\'ve determined the class name
    // and added it to $my_post_class
    $my_post_class = \'some-class\';

    // Add it to the array of post classes
    $classes[] = $my_post_class;

    // Return the array
    return $classes;
}
add_filter( \'post_class\', \'wpse_filter_post_class\' );
编辑假设您将使用自定义post元数据来确定要添加为post类的布局字符串,您可以执行以下操作:

$my_post_class = ( isset( get_post_meta( get_the_ID(), \'_post_layout\', true ) ? get_post_meta( get_the_ID(), \'_post_layout\', true ) : false );
要将其合并到过滤器回调中,请执行以下操作:

function wpse_filter_post_class( $classes ) {

    // Test for your layout post meta
    $my_post_class = ( isset( get_post_meta( get_the_ID(), \'_post_layout\', true ) ? get_post_meta( get_the_ID(), \'_post_layout\', true ) : false );

    // If it\'s there, use it
    if ( $my_post_class ) {
        // Add layout as a post class
        $classes[] = $my_post_class;
    }

    // Return the array
    return $classes;
}
add_filter( \'post_class\', \'wpse_filter_post_class\' );

结束

相关推荐

Get_Posts()似乎忽略了post_type

我正在尝试获取post类型为“leads”的帖子(我使用的代码见下文),但是生成的查询(通过调试查询获得)包括“where post\\u type in(“leads”、“leads”、“product\\u description”、“custom\\u products”)”[[注意leads有两次]]这让我想到,不知何故,某种东西被挂在了这里面——但抑制\\u filters=>true不应该阻止这种情况发生吗?如果是这样的话,到底发生了什么,我如何将帖子限制为“潜在客户”? $args