Thêm và / hoặc xóa các trường người dùng WordPress

Sự đơn giản nên là mục tiêu chính trong thiết kế và nên tránh sự phức tạp không cần thiết. Do đó, Hãy Giữ Nó Đơn Giản, Ngốc. Hoặc, chủ nghĩa tối giản!
Nguyên nhân chắc chắn của nó là để kỷ niệm rằng - cùng với chủ nghĩa tối giản tổng thể, được hoan nghênh đã ghé thăm trên giao diện người dùng quản trị WordPress - kể từ phiên bản gần đây của WordPress, các trường Người dùng khá cổ xưa không còn nữa. Điều hướng đến Users > Your Profile và, trừ khi được thêm một cách rõ ràng bởi một chủ đề hoặc plugin (có thể cổ xưa), bạn sẽ thấy một vài trường liên hệ của người dùng được chào đón. Email, trang web, tiểu sử, v.v. Nghiêm túc những điều cơ bản.

Tuy nhiên, đã đến lúc, khi bạn muốn thêm một tham chiếu đến Skype hoặc Twitter hoặc liên kết tới Dribble hoặc Facebook , v.v. Như thường lệ, điều này khá đơn giản.

Với user_contactmethods bộ lọc, chúng tôi có thể thêm hoặc xóa các phương thức liên hệ có sẵn trên trang hồ sơ của Người dùng.

Xác định chức năng

Như thường lệ, đầu tiên chúng ta định nghĩa một hàm. Hãy gọi nó butter_modified_fields(). Hàm này sẽ chấp nhận một đối số $contact_methods sẽ là một mảng kết hợp.
function butter_modified_fields( $contact_methods ){
// define the new/additional User fields here
}
Sau khi xác định xong hàm, chúng ta sẽ cần kết nối với user_contactmethods bộ lọc. Chúng tôi sẽ có chức năng này thực hiện contact_methods chấp nhận id biểu mẫu trường Người dùng mới của chúng tôi làm khóa và nhãn biểu mẫu có thể đọc được con người làm giá trị. Nghe có vẻ phức tạp hơn. Do đó, hãy xem:

 

function butter_modified_fields( $contact_methods ){

	$contact_methods['skype'] = __('Skype Username’, ‘butter’); 
	$contact_methods['twitter'] = __('Twitter Username', ‘butter’); 
	$contact_methods['dribbble'] = __('Dribbble Username', ‘butter’); 
	$contact_methods['facebook'] = __(‘Full FB URL', ‘butter’); 

	return $contact_methods;
}

add_filter('user_contactmethods', 'butter_modified_fields');

Xóa các trường cũ

Cách đây không lâu, như đã đề cập, bạn có các trường người dùng cho những thứ như 'aim' và 'jabber'. Không rõ là có thêm bất kỳ thanh thiếu niên nào từ cuối những năm 90 vẫn sử dụng mục tiêu hay không. Không ai thực sự biết jabber là gì.

Nếu bạn vẫn đang xem các trường này trong User > Your profile chế độ xem của mình , rất có thể bạn cần nhanh chóng nâng cấp cài đặt của mình lên phiên bản WordPress mới nhất . Nếu đó là điều bất khả thi đối với bạn, đừng lo lắng cho bạn trẻ Padawan, tất cả những gì bạn cần làm là điều chỉnh chức năng trên. Sau khi đã thêm các trường Skype , Twitter , DribbbleFacebook , bạn có thể xóa aimjabber như sau:

function butter_modified_fields( $contact_methods ){

	// lines where you added Skype, twitter, dribble, etc above
	. . .

	// Unset fields you don’t need
	unset($contact_methods['aim']);
	unset($contact_methods['jabber']);

	return $contact_methods;
}

add_filter('user_contactmethods', 'butter_modified_fields');

Cùng với đó, giao diện người dùng hồ sơ người dùng của bạn tinh xảo như bạn mơ ước. Tuy nhiên, hãy cẩn thận, mặc dù các phương pháp rút gọn có thể hoạt động tốt trong lớp nghệ thuật, ví dụ như khi làm việc với than trên giấy, trong WordPress, việc loại bỏ các chức năng và tính năng do cốt lõi xác định không phải là điều đặc biệt tốt.

Nếu chính tầm nhìn của các trường làm cho bạn kiểm tra lại một cách không kiểm soát, bằng mọi cách, hãy thực hiện việc loại bỏ phương thức liên hệ. Nếu không, thật dễ dàng hoặc được cho là dễ dàng hơn khi hoàn toàn bỏ qua các trường và không điền bất kỳ thứ gì vào chúng.

Trên thực tế, nếu bạn định phân phối chủ đề của mình thông qua một số thị trường hàng đầu, hãy tránh xóa hoặc làm tê liệt WordPress về mặt chức năng theo bất kỳ cách nào. Dù bạn có thể không đồng ý về mặt đạo đức (hoặc cách khác), ý kiến ​​của bạn sẽ không thành vấn đề. Việc gửi chủ đề tàn tật của bạn đến các chợ này sẽ bị từ chối một cách phân loại và tổng hợp. Nếu bạn làm chủ đề hoàn toàn để giải trí chứ không phải lợi nhuận, hãy thử nghiệm.

Hiển thị các trường

Bây giờ chúng ta đã xác định hàm và hiểu rằng cách tiếp cận bổ sung tốt hơn nhiều so với cách tiếp cận rút gọn, chúng ta chuyển sang sử dụng hàm. Ví dụ: trên tạp chí hoặc trang báo có nhiều người đóng góp, trên trang tiểu sử của mỗi tác giả, bạn chỉ cần thực hiện lệnh gọi cho trường có liên quan như sau:
<?php echo the_author_meta('twitter'); ?>
Tùy thuộc vào đánh dấu bạn sử dụng, bạn có thể muốn bọc nó trong một điều kiện để trước tiên kiểm tra rằng trường không trống. Như vậy:
<?php if ( get_the_author_meta('twitter') ) :  ?>
	<?php the_author_meta('twitter'); ?>
<?php endif; ?>

Làm cho $ #!% Có thể cắm được !!!

Giống như bài hát hấp dẫn nhưng khó chịu đó thường xuyên bị mắc kẹt trong đầu bạn vào những thời điểm không thích hợp nhất, hy vọng rằng điều này cũng làm được như vậy. Nếu bạn không lấy gì từ hướng dẫn này, thì tl; dr chỉ đơn giản là:
có một chức năng cho điều đó!
và khi bạn tìm thấy chức năng đó:
làm cho $ #!% có thể cắm được!
Mặc dù bạn có thể nghĩ rằng không ai quan tâm đến việc điền vào hồ sơ jabber và / hoặc mục tiêu của họ, nhưng người dùng cuối của chủ đề của bạn (và nhiều khả năng là khách hàng của họ [2 độ Kevin Bacon]) rất có thể sử dụng chúng. Để đạt được điều đó, đừng làm tê liệt WordPress mà không có lý do gây tranh cãi nhưng nếu bạn phải làm cho những gì bạn làm có thể dễ dàng đảo ngược bởi người tiếp theo hy vọng có ý nghĩa tốt hơn. Nói to ra: ĐẶT CHỨC NĂNG CÓ THỂ CẮM ĐƯỢC!

Sau khi đã xác định chức năng, tự nhiên, điều này là đơn giản. Tất cả những gì chúng ta phải làm là đảm bảo bọc nó trong a ( ! function_exists() ). Vì vậy, các butter_modified_fields() hàm mà chúng tôi đã định nghĩa trong functions.php sẽ trông giống như sau:

// be nice to the children (make it pluggable)
if ( ! function_exists( 'butter_modified_fields' ) ) :

  function butter_modified_fields( $contact_methods ){

    $contact_methods['skype'] = __('Skype Username’, ‘butter’); 
    $contact_methods['twitter'] = __('Twitter Username', ‘butter’); 
    $contact_methods['dribbble'] = __('Dribbble Username', ‘butter’); 
    $contact_methods['facebook'] = __(‘Full FB URL', ‘butter’);

    // Unset fields you don’t need
    // you CAN do this but maybe think about it before you do
    unset($contact_methods['aim']);
    unset($contact_methods['jabber']);

    return $contact_methods;
  }

  add_filter('user_contactmethods', 'butter_modified_fields');

endif;

Và đó là nó cho điều đó. Phần tiếp theo trình bày cách đưa các phương thức liên hệ với người dùng này vào trang Nhóm / Cộng tác viên.