Cách cắt ngắn văn bản thay thế cho các hình ảnh nổi bật trên kho lưu trữ nội dung trong Genesis

Trong nhóm Genesis Facebook, một người dùng đã hỏi:

Tôi có tiêu đề bài đăng rất dài và khi tôi thực hiện kiểm tra khả năng truy cập, đã có cảnh báo rằng thẻ alt quá dài. Vì vậy, tôi đã sử dụng bộ lọc genesis_get_image và tạo lại hình ảnh. Có cách nào tốt hơn? Tôi đã thử WP tiêu chuẩn ‘post_thumbnail_html’ nhưng điều đó chỉ hoạt động đối với các vòng lặp không phải Genesis, như trong display_posts_shortcode của Bill Erickson (rất thích!).

Trong bài viết này, tôi chỉ ra cách chúng ta có thể

  1. thêm một chức năng để cắt bớt tiêu đề bài viết
  2. xóa đầu ra hình ảnh nổi bật tiêu chuẩn của Genesis theo cài đặt chủ đề trên kho lưu trữ nội dung
  3. thêm đầu ra hình ảnh nổi bật tùy chỉnh, trong đó văn bản thay thế của hình ảnh nổi bật được đặt thành văn bản tiêu đề bài đăng bị cắt ngắn

Ảnh chụp màn hình mẫu cho bài đăng có tiêu đề “Bài đăng mẫu có nhận xét theo chuỗi”:

Thêm phần sau vào functions.php của chủ đề con :

// Function to truncate post titles
function customTitle( $limit ) {

    $title = get_the_title( $post->ID );

	if ( strlen( $title ) > $limit ) {
      $title = substr( $title, 0, $limit ) . '...';
    }

    return $title;
}

// genesis_entry_header action hook is used here because it is the one immediately above genesis_entry_content. Remember: Hook as late as possible.
add_action( 'genesis_entry_header', 'sk_custom_post_image' );
function sk_custom_post_image() {

	// if we are on a content archive page and featured images are set to be shown on content archives in Genesis theme settings
	if ( ! is_singular() && genesis_get_option( 'content_archive_thumbnail' ) ) {

		// remove the standard featured image output by Genesis per theme settings
		remove_action( 'genesis_entry_content', 'genesis_do_post_image', 8 );

		// add custom featured image output
		add_action( 'genesis_entry_content', 'sk_do_post_image', 8 );

	}

}

// Function to set the alt text of featured image to truncated post title text
function sk_do_post_image() {

	$img = genesis_get_image( array(
		'format'  => 'html',
		'size'    => genesis_get_option( 'image_size' ),
		'context' => 'archive',
		'attr'    => genesis_parse_attr( 'entry-image', array ( 'alt' => customTitle( 20 ) ) ),
	) );

	if ( ! empty( $img ) ) {
		printf( '<a href="%s" aria-hidden="true">%s</a>', get_permalink(), $img );
	}

}

Thay đổi 20 ở trên số ký tự bạn muốn được hiển thị.