Hướng dẫn: tuyển dụng lập trình viên WordPress
Trang 1 trong tổng số 1 trang • Share
- DenDenMuShiThành viên mới
- Tổng số bài gửi : 10
Điểm : 30
Danh vọng : 0
Ngày tham gia : 10/03/2018
Hiện nay, WordPress là một trong những hệ thống quản lý nội dung nổi tiếng nhất. Khách hàng ưa thích WordPress vì dễ set up, nhiều plugin, và giao diện thân thiện. Lập trình viên thích WordPress vì chức năng dễ hiểu, dễ set up, vừa có chất lượng chấp nhận được. Kết quả là, số lượng trang web theo dùng WordPress ngày càng tăng cao, và việc xác định lập trình viên WordPress giỏi đang ngày càng trở nên quan trọng trong mắt nhà tuyển dụng. Trong bài viết ngày hôm nay, chúng tôi sẽ điểm qua những câu hỏi và câu trả lời giúp các bạn xác định ứng cử viên phù hợp nhất.
Thách thức
Hiện nay, WordPress là một trong những hệ thống quản lý nội dung nổi tiếng nhất. Ta có thể dùng nó cho blog cá nhân, cửa hàng trực tuyến, landing page, corporate website,… Khách hàng ưa thích WordPress vì dễ set up, nhiều plugin, và giao diện thân thiện. Lập trình viên thích WordPress vì chức năng dễ hiểu, dễ set up, vừa có chất lượng chấp nhận được.Số trang web sử dụng WordPress đang gia tăng, từ đó nhu cầu lập trình viên WordPress cũng tăng theo. Vậy thì, xác định lập trình viên WordPress giỏi như thế nào? Trong bài viết này, chúng tôi sẽ điểm qua những câu hỏi và câu trả lời giúp các bạn xác định trình độ của ứng cử viên.
Tại sao lại phí tiền xây dựng một website mới cóng, trong khi ta chỉ việc thuê một lập trình viên WordPress và tiếp kiệm biết bao nhiêu tiền?
Câu hỏi và trả lời
Q: Thảo luận cách setup custom thêm, kể tên file bắt buộc tối thiểu, và giải thích cách thức WordPress nhận dạng theme mới.Mỗi trang WordPress đều yêu cầu theme, và theme này cấu trúc nên trang và là phần không thể thiếu của trang web.
Một theme mới được tạo lập như sau: trong thư mục
- Code:
wp-content/themes/
, tạo và đặt tên forlder mới. Theo quy chuẩn thì nên dùng tên của công ty tạo website. Dùng ký tự lowercase (viết thường) không khoảng cách. Chú ý, trong theme folder phải có đủ 5 file sau:
[/size]
- Code:
style.css
,
[/size]
- Code:
functions.php
,
[/size]
- Code:
index.php
,
[/size]
- Code:
header.php
và
[/size]
- Code:
footer.php
. Sau đó, bạn có thể mở rộng theme với nhiều custom file khác.[/size]
Việc tạo
- Code:
style.css
file header là bước cơ bản trong theme setting. Với
[/size]
- Code:
style.css
và header, lõi WordPress sẽ nhận dạng folder làm theme mới.[/size]
Phần đầu của file
- Code:
style.css
:[/size]
1 2 3 4 5 6 7 8 9 10 11 | /* Theme Name: [theme name] Author: [author name] Author URI: [author URL] Version: [theme version] Description: [theme description] License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html */ |
Nếu muốn tạo theme con, bạn phải thêm một line vào chỗ chỉ thị theme chính
1 2 3 | Template: twentyfifteen |
Trong đó
- Code:
twentyfifteen
là tên folder theme gốc.[/size]
Q: Giải thích quy chế tạo page của WordPress.
WordPress nhận diện và phân tích yêu cầu được nhập vào thanh URL, chọn file PHP tốt nhất, và khởi tạo webpage. WordPress sẽ tạo một global object
- Code:
$wp_query
dựa theo yêu cầu trong URL. Sau đó, với sự trợ giúp của functions, WordPress sẽ load những file khác, như
[/size]
- Code:
header.php
,
[/size]
- Code:
footer.php
, và
[/size]
- Code:
sidebar.php
.[/size]
Kiểm tra sơ đồ phân cấp template, sơ đồ làm rõ quy trình và chỉ ra file sẽ xuất nội dung của truy vấn lúc đó.
Ví dụ như, nếu địa chỉ là
- Code:
/? Cat = 1
. WordPress đầu tiên sẽ kiểm tra file
[/size]
- Code:
category-slug.php
. Nếu không tìm được file, sẽ tìm đến file
[/size]
- Code:
category-id.php
, và tiếp tục như vậy, cho đến khi tìm được file phù hợp. Nếu không tìm được file nào phù hợp, WordPress sẽ lựa chọn file
[/size]
- Code:
index.php
.[/size]
Q: giải thích ý nghĩa của việc lập trình theme và nguyên tắc cơ bản cần có ở một theme tốt. Theme file nên có những gì?
Sau đây là một số chuẩn và nguyên tắc đề nghị khi tạo theme mới:
- Hàm
- Code:
wp_head()
phải có trong file
[/size]- Code:
header.php
.[/size] - Hàm vận hành class, phải có trong file
- Code:
header.php
, trong body tag:
[/size]- Code:
<body <php body_class ();? ? >>
- Hàm
- Code:
wp_footer()
phải có trong file
[/size]- Code:
footer.php
.[/size] - Nếu bạn có functionality lặp, code này phải được đặt trong hàm riêng, và đưa hàm vào file
- Code:
functions.php
.[/size] - Trong tất cả các file, ngoại trừ
- Code:
header.php
và
[/size]- Code:
footer.php
, số tag HTML mở phải bằng với số tag đóng.[/size] - Nếu file có chứa phần giống với HTML code, thống nhất thành một file vẫn tốt hơn, đặt file này vào folder con trong folder theme của bạn, bạn có thể đặt tên folder là
- Code:
blocks
hoặc tên gì cũng được, kết nối phần code này, và gọi hàm
[/size]- Code:
get_template_part( 'blocks/[name-of-the-file.php]' );
.[/size] - File
- Code:
index.php
là file cuối cùng tham gia vào xử lý yêu cầu, nên phải trừ vòng lặp chính với bất cứ truy vấn nào. Đồng nghĩa với việc ta không cách nào thay đổi vòng lặp trong
[/size]- Code:
index.php
.[/size] - Tất cả theme setting phải được đặt trong file
- Code:
functions.php
: action, filter, custom function, và custom class. Dù vậy, ta vẫn có thể đặt class và function ở file khác, và có thể kết nối đến
[/size]- Code:
functions.php
chính, hoặc đặt ở một plugin riêng biệt.[/size] - Code không nên chứa code có comment. Comment dưới dạng description vẫn được cho phép, nhưng những đoạn code đã được dùng trong design phải bị loại bỏ.
- Code trong file nên có kèm với indent (thụt lùi).
- Theme phải đạt chuẩn w3c.
- Theme phải có khả năng làm việc độc lập với plug-in bên ngoài. Ví dụ như, nếu ta dùng plugin
- Code:
WP-PageNavi
, bạn phải viết:[/size]
1 2 3 4 5 6 7 | if (function_exists ( 'wp_pagenavi')): wp_pagenavi (); else: get_template_part ( 'blocks / pager'); endif; |
- Nếu code dùng hàm hoặc plugin class, hãy đảm bảo hàm hoặc class này có tồn tại:
1 2 3 | if (function_exists ('name_of_the_function')) |
- Với yêu cầu trực tiếp đến database, bạn phải dùng class
- Code:
$wpdb
và method của nó.[/size] - Nếu bạn sử dụng form và cần tạo options page admin panel, bạn phải dùng
- Code:
wp_nonce_field()
, và check field và action bên phía server:[/size]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | if ( ! isset( $_POST['name_of_nonce_field'] ) || ! wp_verify_nonce( $_POST['name_of_nonce_field'], 'name_of_my_action' ) ) { print 'Sorry, your nonce did not verify.'; exit; } else { // process form data } ?> /* some code is here*/ |
- Nếu có file không được sử dụng, xóa chúng khỏi theme folder. Nếu client không sử dụng “search” trên trang, xóa
- Code:
searchform.php
khỏi theme folder.[/size] - Hàm bắt đầu với
- Code:
_
chỉ được viết trong vòng lặp. Và trong vòng lặp, nếu có thể, sử dụng hàm bắt đầu với
[/size]- Code:
_
để thể hiện vùng hiển thị.[/size]
Q: giải thích cách tạo custom page template.
Với custom page templates, tạo folder riêng vẫn tốt hơn; và không được xáo trộn custom template với WordPress template đã có. Đặt file custom template vào folder này. Bạn phải thêm đoạn code sau vào đầu file:
1 2 3 4 5 6 7 | Php / * Template Name: [Template_Name] * / get_header (); ?> |
Q: Giải thích cách thêm file CSS và JavaScript vào theme hoặc plugin.
Bạn có thể dùng
- Code:
<link>
hoặc
[/size]
- Code:
<script>
, nhưng cách chính xác nhất vẫn là kết nối chúng trong file
[/size]
- Code:
functions.php
. Bạn cần thêm action vào
[/size]
- Code:
wp_enqueue_scripts
, và action này là kết nối giữa các file JavaScript và các file CSS:[/size]
1 2 3 4 5 6 7 8 9 10 11 12 13 | function theme_scripts_styles () { // Connection of a custom JS file after jquery library that will be connected independently by WordPress wp_enqueue_script ( 'theme-script', get_template_directory_uri () '/js/jquery.main.js', array ( 'jquery').); // Loads default theme style.css. wp_enqueue_style ( 'theme-style', get_stylesheet_uri (), array ()); // Connection of a custom css file wp_enqueue_style (. 'theme-theme', get_template_directory_uri () '/theme.css', array ()); } add_action( 'wp_enqueue_scripts', 'theme_scripts_styles' ); |
Q: Trình bày cách thức tạo custom menu và hiển thị menu lên trang web như thế nào.
Để hiển thị menu, bạn phải:
- Lựa chọn vị trí của menu trong
- Code:
functions.php
:[/size]
1 2 3 4 5 | register_nav_menus (array ( 'Primary' => __ ( 'Primary Navigation'), )); |
- Sử dụng vị trí này để hiển thị menu:
1 2 3 4 5 6 7 8 9 | if (has_nav_menu ( 'primary')) wp_nav_menu (array ( ... 'Theme_location' => 'primary', ... ) ); |
Menu này đặt trên một trang qua admin panel, từ đó cũng cho phép các trang khác đặt menu (có hình dạng tương tự) ở cùng một vị trí.
Ta có thể tạo custom setting thông qua parameters hàm wp_nav_menu(), nhưng nếu bạn cần tạo custom menu, hãy làm như sau:
[list="box-sizing: border-box; padding-right: 0px; padding-left: 0px; color: rgb(51, 51, 51); font-family: Roboto; font-size: 16px; background-color: rgb(255, 255, 255);"]
[*]Tạo inheritance class từ
- Code:
Walker_Nav_Menu
, tại đây bạn có thể viết custom functionality của riêng mình:
class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {…}[/size]
[*]Khi đang hiển thị menu, thêm một parameter walker nữa:
[/list]
1 2 3 4 5 6 7 8 9 10 | if( has_nav_menu( 'primary' ) ) wp_nav_menu( array( ... 'theme_location' => 'primary', 'walker' => new Custom_Walker_Nav_Menu ... ) ); |
Q: giải thích vòng lặp là gì, vòng lặp làm việc như thế nào?
Vòng lặp là “chu kỳ” WordPress tạo nội dung trang. Nếu chỉ có một trang duy nhất, như
- Code:
page.php
hay
[/size]
- Code:
ingle.php
, chu kỳ sẽ giữ nguyên với template, nhưng sẽ chỉ được thực hiện một lần. Nếu bạn có
[/size]
- Code:
search.php
,
[/size]
- Code:
archive.php
hoặc
[/size]
- Code:
index.php
, chu kỳ sẽ diễn ra vô số lần cho đến khi yêu cầu (dựa theo truy vấn URL, và object được hình thành như thế nào
[/size]
- Code:
wp_query
) được thỏa mãn. Vòng lặp sẽ chạy các post trong global
[/size]
- Code:
$wp_query
object.[/size]
Q: giải thích sự khác nhau giữa hàm bắt đầu với
- Code:
the_
và những hàm khác.[/size]
Hàm có đầu
- Code:
the_
chuyên dùng cho vòng lặp, và không thể sử dụng được ngoài chu kỳ.[/size]
Q: Trình bày custom post type; tại sao ta dùng chúng, và tạo bằng cách nào?
Custom post types cần thiết để phá vỡ nội dung một cách logic. Ví dụ như, ta muốn liệt kê tất cả sale manager trong công ty, từ đó khách hàng có thể trực tiếp liên hệ với họ bằng website. Giả sử, phòng sale có 20 người, và có một người có thể nghỉ việc hoặc vào làm bất cứ lúc nào. Vì vậy, với nhiệm vụ này, action logic nhất là tạo post type Team và trong template, liệt kê những người trong post type Team.
Một ví dụ tạo custom post type:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | add_action( 'init', 'theme_create_post_type' ); function theme_create_post_type() { register_post_type( 'team', array( 'labels' => array( 'name' => __( 'Team' ), 'singular_name' => __( 'team' ), ), 'publicly_queryable' => true, 'public' => true, 'show_ui' => true, 'hierarchical' => false, 'menu_position' => null, 'query_var' => true, 'supports' => array('title','editor','thumbnail','custom-fields','comments') ) ); } |
Custom post type được tạo tại action
- Code:
init
. Vì vậy, bạn cần phải tạo action và đặt tên
[/size]
- Code:
register_post_type()
trong function với hệ parameters mong muốn.[/size]
Q: Trình bày cách lấy post từ custom post type và custom taxonomy.
Ví dụ như: ta có post type Team và taxonimy Department, và trong custom taxonomy, ta có term Managers. Nhiệm vụ của chúng ta là hiển thị tất cả manager.
Giả sử “slug” của term Managers trong custom taxonomy Department bằng với Managers, ta có thể dùng WP_Query class, như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 | $args = array( 'post_type' => 'team', 'tax_query' => array( array( 'taxonomy' => 'department', 'field' => 'slug', 'terms' => 'managers', ), ), ); $query = new WP_Query( $args ); |
Q: trình bày shortcode và cho một vài ví dụ.
Shortcode dùng để tạo macros (mà sau đó có thể dùng trong nội dung của post). Trong WordPress, Shortcode được bao trong dấu ngoặc vuông
- Code:
[]
. Có thể dùng Shortcode trong post của content editor hoặc trong pattern, nếu bạn áp dụng hàm
[/size]
- Code:
do_shortcode()
. Ví dụ đơn giản nhất là khi client không biết HTML, nhưng lại cần thêm gì đó vào nội dung của post.[/size]
Trong WordPress, ta có thể tạo ba kiểu shortcode. Tuy nhiên, do tính chất tùy biến mạnh mẽ. ta có thể có vô số loại shortcode. Chú ý, hàm xử lý shortcode phải trả giá trị, chứ không hiển thị. Ví dụ, nếu ta cần hiển thị cụm từ “Hello World”, ta sẽ viết trong
- Code:
functions.php
như sau:[/size]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function hworld_func( $atts ){ return ‘ Hello world } add_shortcode( 'hworld', 'hworld_func' ); Để shortcode làm việc, ta phải thêm `[hworld]` vào nội dung post. Nếu phải điều chỉnh shortcode từ admin panel, ta có thể thêm parameters vào đó, chẳng hạn như: `[hworld cssclass = "red"]` Một code trong `functions.php` như sau: function hworld_func( $atts ){ return ‘ Hello world } add_shortcode( 'hworld', 'hworld_func' ); |
Hơn nữa, giống như parameters, ta có thể tự xử lý text. Để làm điều đó, shortcode phải giống như sau:
1 2 3 4 5 6 7 8 9 | [hworld cssclass = "red"] Hello world [/ hworld] Và rồi `functions.php` sẽ như sau: function hworld_func( $atts, $content ){ return ‘ ’ . $content . ’ } add_shortcode( 'hworld', 'hworld_func' ); |
Q:mô tả các bước tạo widget. Trình bày các hàm widget chủ đạo.
Trong WordPress, bạn có thể tạo custom widget bằng cách tạo class kế thừa hàm cơ bản từ
- Code:
WP_Widget
class.[/size]
Các hàm chính trong widget class:
- Code:
__construct()
: constructor của widget, nó sẽ thêm wdget vào admin panel.- Code:
widget(
$ args, $ instance- Code:
\)
: hiển thị nội dung trên front-end dựa trên argument (tham số) của hàm.
[/size]- Code:
$ args
là widget argument được đặt trong sidebar để bao quanh widget.
[/size]- Code:
$ instance
là parameter của widget, và có thể điều chỉnh trong admin area.[/size]- Code:
update($ new_instance, $ old_instance)
: một tính năng lưu trữ tùy chọn widget mới, nếu quản trị viên thay đổi chúng trong admin panel.- Code:
form($ instance)
: tại widget setting từ trong admin panel trên trang- Code:
widgets.php
.[/size]
Để widget hoạt động, điều cuối cùng ta cần là: action
- Code:
widgets_init
đính kèm theo hàm record (register) nó:[/size]
1 2 3 | add_action ( 'widgets_init', create_function ( '', 'return register_widget ( "CustomWidget");')); |
Similar topics
Đăng ký thành viên và bình luận
Bạn cần phải đăng ký để bình luận.
Tạo tài khoản
Tham gia vào cộng đồng bằng cách tạo tại khoản, nó thật dễ dàng!
Tạo tài khoản mới
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
Wed Feb 21, 2024 11:49 am by NIK SIURI
» [PhpBB3] BeastVN
Sun Feb 11, 2024 3:07 pm by hoanglongnhatbao
» [PhpBB2] IPS Community
Sun Feb 11, 2024 3:06 pm by hoanglongnhatbao
» [PunBB] HEEDragon
Sun Feb 11, 2024 3:04 pm by hoanglongnhatbao
» [PunBB] Facebook
Sun Feb 11, 2024 3:04 pm by hoanglongnhatbao
» [PunBB] Back (Mới)
Sun Feb 11, 2024 3:03 pm by hoanglongnhatbao
» [PhpBB3] CODE GAME
Sun Feb 11, 2024 2:37 pm by hoanglongnhatbao
» [Invision] VNXF
Sun Feb 11, 2024 2:36 pm by hoanglongnhatbao
» [Simple Theme] Silver Plain V4.1
Sun Feb 11, 2024 2:19 pm by hoanglongnhatbao