Khắc phục Missing author và Missing updated trên WordPress

Bạn có đang gặp thông báo Missing authorMissing updated trong Google Search Console hoặc trên công cụ kiểm tra dữ liệu cấu trúc của Google? Mấy cái này không phải là lỗi mà chỉ là cảnh báo nhắc nhở bạn đang thiếu trường tác giả và thời gian cập nhật của bài viết.

Phát triển WordPress

Để khắc phục những cảnh báo này thì có 2 giải pháp. Một là bạn xóa class hentry ra khỏi bài viết, hai là bạn bổ sung hiển thị thêm tác giả và ngày cập nhật bài viết.

Khắc phục Missing author và Missing updated trên WordPress

Cho dù bạn chọn cách nào đi nữa thì bạn cũng phải biết là mình đang làm gì. Nhớ thực hiện sao lưu trước khi làm nhé. Đầy tiên thì mình sẽ hướng dẫn cho bạn các gỡ bỏ class hentry ra khỏi bài viết trước.

Bạn mở tập tin functions.php của giao diện lên và thêm vào đoạn code sau:

function hocwp_theme_custom_remove_hentry( $classes ) {
	$classes = array_diff( $classes, array( 'hentry' ) );

	return $classes;
}

add_filter( 'post_class', 'hocwp_theme_custom_remove_hentry' );

Cách xóa class này đi thì đơn giản hơn rất nhiều so với việc bạn thêm tác giả và ngày cập nhật. Sau khi bạn làm xong, lưu tập tin functions.php của giao diện lại. Ra ngoài front-end tải lại trang xem có thay đổi gì không. Nhớ xóa cache trình duyệt nha bạn.

Riêng trong Google Search Console thì bạn phải đợi thời gian để hệ thống cập nhật. Có thể đẩy nhanh tiến độ bằng cách resubmit sitemap nhé. Hoặc bạn kiểm tra trực tiếp trên công cụ của Google như link mình gửi đầu bài.

Bổ sung author và updated cho bài viết

Để làm được việc này thì bạn phải biết chút ít về code nhé. Mình khuyên bạn nên nhờ người khác làm hoặc bạn tự làm nhưng phải sao lưu dữ liệu và tập tin lại trước. Như mình đã nói, cái này không phải lỗi mà là thiếu hiển thị author và updated cho bài viết.

Khắc phục missing author

Bạn tìm kiếm tất cả các tập tin template của giao diện: single.php, archive.php, category.php,… Dĩ nhiên là bạn phải biết chút ít về code thì mới làm được nhé. Bạn tìm kiếm tới chỗ hiển thị bài viết. Có thể bài trong vòng lặp hoặc bài trong single nhé.

Mẹo ở đây là bạn xem cấu trúc của giao diện, tìm kiếm theo từ khóa thẻ HTML mà gần ngay chỗ hiển thị bài viết. Hoặc tìm kiếm theo hàm post_class(). Hoặc bạn có thể thử tìm theo từ khóa the_author.

Nếu bạn thấy nội dung đại loại như bên dưới:

<span class="author_name"><?php the_author(); ?></span>

Hoặc thậm chí trong giao diện không có dòng như bên trên thì bạn thêm vào ngay dưới tiêu đề của bài viết nhé:

<span class="vcard author author_name"><span class="fn"><?php the_author(); ?></span></span>

Bạn nhớ thêm vào như bên trên nhé, nếu có sẵn thì bạn thêm class vcard author vào. Sau đó thêm thẻ span với class fn để bọc tên tác giả lại. Như bạn thấy, chỉ có thay đổi class của thẻ HTML thôi chứ không làm gì khác.

Khắc phục missing updated

Cũng giống như khắc phục cảnh báo missing author. Bạn xuất mục thời gian viết bài hoặc cập nhật ra dưới tiêu đề bài viết. Nếu bạn đã làm được mục tác giả bên trên thì bạn bỏ đoạn code sau vào ngay bên dưới đoạn đó nhé:

$time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';
if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
	$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
}

$time_string = sprintf( $time_string,
	get_the_date( DATE_W3C ),
	get_the_date(),
	get_the_modified_date( DATE_W3C ),
	get_the_modified_date()
);

printf( __( '<span class="screen-reader-text">Posted on</span> %s', 'textdomain' ), '<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>' );

Nhớ sửa textdomain phù hợp với giao diện bạn đang dùng. Thông tin này bạn có thể tìm thấy tại tập tin style.css của giao diện.

Khắc phục nhanh missing author và missing updated

Ngoài 2 cách bên trên mình hướng dẫn ra, bạn có thể thêm nhanh đoạn code sau vào tập tin functions.php của giao diện:

function hocwp_theme_custom_fix_single_atom( $content ) {
	$t = get_the_modified_time( 'F jS, Y' );
	
	$author = get_the_author();
	$title  = get_the_title();
	
	if ( is_home() || is_singular() || is_archive() ) {
		$content .= '<div class="hatom-extra" style="display:none;visibility:hidden;"><span class="entry-title">' . $title . '</span> was last modified: <span class="updated"> ' . $t . '</span> by <span class="author vcard"><span class="fn">' . $author . '</span></span></div>';
	}

	return $content;
}

add_filter( 'the_content', 'hocwp_theme_custom_fix_single_atom' );

Tuy nhiên, đoạn code này chỉ phù hợp cho những giao diện gọi the_content ngay khi ở trang chủ. Thường thì người ta chỉ gọi the_content() ở single mà thôi. Ở những vị trí khác thì họ gọi hàm the_excerpt().

Khắc phục cảnh bảo missing entry-title và những thứ khác

Nhếu như bạn còn thấy cảnh báo missing entry-title thì bạn chỉ cần thêm class entry-title vào trong thẻ gọi hàm the_title() là được. Nếu như bạn còn thấy thiếu nhiều thứ khác thì hãy liên hệ nhờ người trợ giúp.

Xóa hentry có ảnh hưởng gì không?

Thật sự thì mình thấy cái này cũng không cần thiết lắm, nếu bạn xóa nó đi thì vẫn ok. Hãy áp dụng đoạn filter post_class như ở đầu bài viết mình giới thiệu đến bạn. Nếu như áp dụng cách chèn mọi thứ vào dưới thẻ tiêu đề bài viết nhưng theo kiểu ẩn thì nhiều khi cũng không tốt. Google không khuyến khích các bạn làm theo kiểu đối phó, tốt nhất là bạn nên đem lại lợi ích cho độc giả hoặc khách hàng của mình. Chúc bạn thành công.

Không có bình luận.

Bạn có thể trở thành người đầu tiên để lại bình luận.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *