如何根据类别为图片添加类别?

时间:2014-08-01 作者:heytricia

我需要能够:1。)为图像和2指定类别。)向与其指定类别相对应的所有图像添加类别。

我可以使用以下内容为图像添加类别:

function ug_add_categories_to_attachments() {
    register_taxonomy_for_object_type( \'category\', \'attachment\' );
}
add_action( \'init\' , \'ug_add_categories_to_attachments\' );
我找到了一个函数,可以为图像添加一个类,如下所示:

function add_image_class($class){
    $class .= \' additional-class\';
    return $class;
}
add_filter(\'get_image_tag_class\',\'add_image_class\');
但我对php的了解还不够深入。我试过这个

function ug_add_image_class($class){
    foreach(get_the_category() as $cat) { $class .= \' category-\'.$cat->slug; };
    return $class;
}
add_filter(\'get_image_tag_class\',\'ug_add_image_class\');
但是没有爱。。。

帮助想法?请星期五快乐!

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

希望这能起到作用:

/**
 * Append the image categories to the current image class.
 *
 * @see http://wordpress.stackexchange.com/a/156576/26350
 */

add_filter( \'get_image_tag_class\', 
    function( $class, $id, $align, $size )
    {
        foreach( (array) get_the_category( $id ) as $cat ) 
        { 
            $class .= \' category-\' . $cat->slug; 
        }
        return $class;
    }
, 10, 4 );
测试(WP 3.9.1):如果我们将图像类别设置为(例如):

rolling-stones, steel-wheels-tour, wembley
屏幕截图:

image categories

然后将图像插入帖子,我们得到了预期的额外类:

category-rolling-stones category-steel-wheels-tour category-wembley
屏幕截图:

html

结束

相关推荐

Resize images in batch

我想调整服务器上的图像大小,我的WordPress站点库中有7000多个图像。我想调整服务器本身上所有图像的大小。我知道可以使用“重新生成缩略图”插件,但为此,我将不得不整天打开浏览器窗口,甚至可能在中间某个地方崩溃,这将导致我再次调整所有图像的大小。有谁有更好的主意来做这件事吗?请简要解释答案。