How to add image id class?

时间:2019-03-05 作者:SHA3.org

是否有一种方法可以使用php函数自动将图像id类附加到帖子内容中现有的附加图像?那太棒了。

这是我到目前为止的情况。从理论上讲,这似乎应该奏效。我做错了什么?

function be_attachment_id_on_images( $attr, $attachment ) {
    if( !strpos( $attr[\'class\'], \'wp-image-\' . $attachment->ID ) )
        $attr[\'class\'] .= \' wp-image-\' . $attachment->ID;
    return $attr;
}
add_filter( \'wp_get_attachment_image_attributes\', \'be_attachment_id_on_images\', 10, 2 );

if ( current_user_can( \'manage_options\' ) && is_admin()){
function my_update_posts() {

        $args = array(
        \'post_type\' => \'post\',
        \'numberposts\' => -1,
        \'category\' => 1,
        \'ID\' => 1,
    );

    $myposts = get_posts($args);
    foreach ($myposts as $mypost){
        $content = $mypost->post_content;
        apply_filters(\'be_attachment_id_on_images\', $content);
        $mypost->post_content = $content;
        wp_update_post( $mypost );
    }

}

add_action( \'admin_init\', \'my_update_posts\' );

}

2 个回复
SO网友:GDY

无耻地从这里抄袭:https://letswp.io/add-attachment-id-to-the-class-of-wordpress-images/

add_filter( \'wp_get_attachment_image_attributes\', \'add_image_id_class\', 10, 2 );


function add_image_id_class( $attr, $attachment ) {

    $class_attr = isset( $attr[\'class\'] ) ? $attr[\'class\'] : \'\';

    $has_class = preg_match( \'/wpimage\\_[0-9]+/\', $class_attr, $matches );


    if ( !$has_class ) {

        $class_attr .= sprintf( \' wpimage_%d\', $attachment->ID );

        $attr[\'class\'] = ltrim( $class_attr );

    }

    return $attr;

}
这将添加一个类,如wpimage_{ATTACHMENT_ID} 例如wpimage_22.

SO网友:Loren Rosen

根据this 前面的答案是wp_get_attachment_image_attributes 过滤器仅适用于特色图像/帖子缩略图,但我不确定该断言是否正确。其他地方声称它与块编辑器不兼容。你可以试试get_image_tag_class() 滤器或者,根据您的目标,使用稍微不同的方法就足够了:在主体中添加一个类(使用body_class() 过滤器),然后使用css选择器,如body.special img (但这并没有给出身份证)。

相关推荐

Adding Images into API

我正试图将特色图片添加到我的API中,但这是一种不同类型的帖子。http://example.com/wp-json/wp/v2/directory我一直在使用WP REST API控制器,但它没有显示图像选项。我也尝试使用“更好的RESTAPI特色图片”,但运气不好。这开始让我恼火了。