获取alt的值是检查是否设置了实际的alt值,如果没有设置,则使用标题;如果没有设置标题,则使用标题

时间:2021-01-03 作者:Mircea

function custom_pic_alt( $attachment_ID ) {
    
      // Get ALT
    $thumb_alt = get_post_meta( $attachment_ID, \'_wp_attachment_image_alt\', true );
    
    // No ALT supplied get attachment info
    if ( empty( $thumb_alt ) )
      $attachment = get_post( $attachment_ID );
    
    // Use caption if no ALT supplied
    if ( empty( $thumb_alt ) )
      $thumb_alt = get_post(get_post_thumbnail_id())->post_excerpt;
    
    // Use title if no caption supplied either
    if ( empty( $thumb_alt ) )
      $thumb_alt = get_post(get_post_thumbnail_id())->post_title;
    
    // Return ALT
    return esc_attr( trim( strip_tags( $thumb_alt ) ) );
 } 
显示结果

<?php echo custom_pic_alt( 10 ); ?>
所有附件的alt值都相同。

1 个回复
SO网友:Tony Djukic

我不确定这对你是否有用因为我不知道$attachment_ID 在函数中返回任何内容。。。但假设是:

function custom_pic_alt( $attachment_ID ) {
    //var_dump( $attachment_ID ); //uncomment this and see if it even returns anything.
    $thumb_alt      = get_post_meta( $attachment_ID, \'_wp_attachment_image_alt\', true );
    $thumb_caption  = wp_get_attachment_caption( $attachment_ID );
    $thumb_title    = get_the_title( $attachment_ID );

    if( !empty( $thumb_alt ) ) :
        $alt_text = $thumb_alt;
    elseif( empty( $thumb_alt) && !empty( $thumb_caption ) ) :
        $alt_text = $thumb_caption;
    elseif( empty( $thumb_alt ) && empty( $thumb_caption ) && !empty( $thumb_title ) ) :
        $alt_text = $thumb_title;
    else : 
        $alt_text = \'\';
    endif;  
    
    // Return ALT
    return esc_attr( trim( strip_tags( $alt_text ) ) );
}
您只需获取所有三个值,然后运行条件检查以查看它们是否为空。

相关推荐

WP Cron jobs loops infinitely

我正在编写一个脚本来添加一个命名的Cron作业,该作业可以更新单个用户,大约每5分钟运行一次。我的问题是,每隔一秒钟左右,每个用户都会反复运行作业。下面是我在函数中放置的代码。php文件。这是我第一次使用WordPress尝试WP Cron功能,我想知道我是否正确设置了作业。function so_custom_cron_schedule( $schedules ) { $schedules[\'every_5_minutes\'] = array( \'inter