Viết code cho file functions.php | Thiết Kế Web 39







Một trong những file quan trọng nhất của một theme WordPress đó là file functions.php. Đây là một file bắt buộc trong theme và nó sẽ chứa các đoạn code nguồn mà bạn muốn nó luôn được load mỗi khi tải website, tóm lại là toàn bộ code PHP cần thiết trong một theme (ngoại trừ các code hiển thị nội dung) thì sẽ đều được viết vào file này.

Trong bài này, chúng ta sẽ tiến hành khai báo các đoạn code cần thiết trong file functions.php này, cũng như thiết lập một số hằng dữ liệu (constrant) để thiết lập một số dữ liệu quan trọng mà chúng ta sẽ cần sử dụng lại nhiều.

Thiết lập các hằng dữ liệu quan trọng

Trong khi viết code trong file functions.php, chúng ta sẽ dùng đi dùng lại một số đoạn code như get_stylesheet_directory_uri, hoặc khai báo các đường dẫn. Do vậy, chúng ta nên thiết lập trước một số hằng dữ liệu chứa cố định các giá trị đó để có viết thì chỉ cần viết tên hằng ra thôi.

Chúng ta có code ban đầu như sau:


/**
@ Thiết lập các hằng dữ liệu quan trọng
@ THEME_URL = get_stylesheet_directory() – đường dẫn tới thư mục theme
@ CORE = thư mục /core của theme, chứa các file nguồn quan trọng.
**/
define( ‘THEME_URL’, get_stylesheet_directory() );
define( ‘CORE’, THEME_URL . ‘/core’ );

Rồi sau này khi bạn làm theme khác, hoặc cải tiến theme thì có thể thêm một số hằng dữ liệu vào để cho phù hợp với nhu cầu của mình, cái quan trọng là mình muốn tạo thói quen này cho các bạn ngay từ bây giờ.

Bây giờ bạn hãy tạo thêm một thư mục trong theme tên là core và tạo một file tên là init.php trong thư mục đó. Tại sao lại tạo thư mục này và file này làm cái gì? Bởi vì như mình đã nói ở đầu bài, là trong bài này mình sẽ hướng các bạn đến việc làm framework theme cho riêng mình luôn, nên thư mục /core sẽ chứa các file code PHP quan trọng trong theme của bạn mà bạn không muốn thay đổi nhiều nếu có nhu cầu tạo child theme. File init.php sẽ có ý nghĩa là load các file PHP đặc thù trong theme mình mà chúng ta sẽ tạo, ví dụ như load các file tạo widget của theme vào, bước này chúng ta sẽ làm sau.

Bạn viết tiếp vào file functions.php như sau để load file init.php.


/**
@ Load file /core/init.php
@ Đây là file cấu hình ban đầu của theme mà sẽ không nên được thay đổi sau này.
**/

require_once( CORE . ‘/init.php’ );

Thiết lập chiều rộng nội dung ($content_width)

Bây giờ, bạn hãy đặt đoạn code này vào file functions.php nhé:


/**
@ Thiết lập $content_width để khai báo kích thước chiều rộng của nội dung
**/
if ( ! isset( $content_width ) ) {
/*
* Nếu biến $content_width chưa có dữ liệu thì gán giá trị cho nó
*/
$content_width = 620;
}

Biến $content_width nghĩa là chúng ta sẽ thiết lập chiều rộng tối đa mà phần hiển thị nội dung (không tính sidebar) mà theme được phép sử dụng, đây là một tính năng của theme WordPress. Khi thiết lập biến này, điều đó không có nghĩa là theme của bạn đã có chiều rộng vì ta phải viết CSS nữa. Nhưng việc khai báo như vậy sẽ giúp cho các thành phần hiển thị trong nội dung như các mã nhúng oEmbed, hình ảnh,….sẽ không bị tràn ra ngoài khung nội dung vì nó sẽ dựa theo giá trị $content_width mà hiển thị tối đa.

Hàm thiết lập chức năng của theme

Tiếp tục, chúng ta sẽ tạo một hàm tên gì đó và sẽ có chức năng móc vào cái hook init của WordPress để khởi tạo các chức năng sẽ được theme hỗ trợ, như post format, customizer,…Hãy chèn đoạn sau vào:


/**
@ Thiết lập các chức năng sẽ được theme hỗ trợ
**/
if ( ! function_exists( ‘thachpham_theme_setup’ ) ) {
/*
* Nếu chưa có hàm thachpham_theme_setup() thì sẽ tạo mới hàm đó
*/
function thachpham_theme_setup() {

}
add_action ( ‘init’, ‘thachpham_theme_setup’ );

}

Điều này có nghĩa là, hàm thachpham_theme_setup() sẽ được tạo mới nếu máy chủ kiểm tra chưa có hàm đó tồn tại. Sau đó, hàm này sẽ được móc vào action hook init của WordPress để nó sẽ được thực thi sau khi WordPress đã load xong trang.

Bây giờ, chúng ta sẽ tiến hành viết code vào trong hàm thachpham_theme_setup() để thiết lập một số tính năng.

Thiết lập theme có thể dịch được sang nhiều ngôn ngữ

Chức năng này có nghĩa là chúng ta sẽ khai báo thư mục chứa ngôn ngữ trong theme, và khai báo textdomain để load các chuỗi ngôn ngữ có trong theme nhằm mục đích cho theme có thể đọc được các file ngôn ngữ và người dùng có thể dịch ra nhiều ngôn ngữ khác nhau bằng việc sửa/tạo file .po.

Chúng ta có code như sau:


/*
* Thiết lập theme có thể dịch được
*/
$language_folder = THEME_URL . ‘/languages’;
load_theme_textdomain( ‘thachpham’, $language_folder );

Cái textdomain nghĩa là một cái tên nhận diện các chuỗi mà chúng ta sẽ cho phép dịch trong theme. Cách viết chuỗi chứa textdomain mình sẽ nói về sau.

Tự chèn liên kết RSS Feed trong mã nguồn

Đây là một chức năng nhỏ trong WordPress, nó sẽ tự thêm một liên kết RSS Feed chèn trong cặp thẻ trong mã nguồn website để các trình đọc RSS Feed có thể hiểu trực tiếp địa chỉ RSS Feed trong website của bạn mà không cần khai báo chính xác địa chỉ RSS Feed, tạo sự thuận tiện cho người đọc.


/*
* Tự chèn RSS Feed links trong
*/
add_theme_support( ‘automatic-feed-links’ );

Thêm chức năng thumbnail cho post

Chức năng thumbnail ở đây nghĩa là chức năng Featured Image mà khi chúng ta soạn post. Để cho cái đó có thể hiển thị ra thì chúng ta phải khai báo sử dụng chức năng này trong theme:


/*
* Thêm chức năng post thumbnail
*/
add_theme_support( ‘post-thumbnails’ );

Thêm chức năng title-tag

Đây là một chức năng mới có trong WordPress 4.1 trở đi. Chức năng title-tag nghĩa là sẽ giúp cho theme tự thêm thẻ trên tài liệu HTML được xuất ra và nó sẽ có cấu trúc khá thông minh như:</p> <ul> <li>Hiển thị kiểu <em>Tên website | Mô tả website</em> ở trang chủ</li> <li>Hiển thị kiểu <em>Tên post/page | Tên website</em> ở trang nội dung post type</li> </ul> <p>Điều này có nghĩa là sau này chúng ta code file header.php thì sẽ không cần thêm hàm wp_title() nữa. Hãy cứ yên tâm là các plugin hỗ trợ SEO như WordPress SEO by Yoast đều tương thích với chức năng này.</p> <pre class="inline-code"><br/>/*<br/>* Thêm chức năng title-tag để tự thêm <title><br/>*/<br/>add_theme_support( ‘title-tag’ );<br/></pre> <h4>Thêm chức năng Post Format</h4> <p>Chức năng Post Format nghĩa là chúng ta có thể tùy biến việc hiển thị post theo các định dạng như Video, Image, Gallery, Quote,…Ở đây chúng ta sẽ chỉ sử dụng vài post format mà thôi.</p> <pre class="inline-code"><br/>/*<br/>* Thêm chức năng post format<br/>*/<br/>add_theme_support( ‘post-formats’,<br/>array(<br/>‘image’,<br/>‘video’,<br/>‘gallery’,<br/>‘quote’,<br/>‘link’<br/>)<br/>);<br/></pre> <p>Bây giờ bạn có thể thử vào tạo post mới sẽ thấy có khung chọn Post Format rồi.</p> <h4>Thêm chức năng custom background</h4> <p>Chức năng này sẽ giúp cho người dùng có thể đổi lại màu nền hoặc thêm ảnh nền cho website dễ dàng thông qua Customize.</p> <pre class="inline-code"><br/>/*<br/>* Thêm chức năng custom background<br/>*/<br/>$default_background = array(<br/>‘default-color’ => ‘#e8e8e8’,<br/>);<br/>add_theme_support( ‘custom-background’, $default_background );<br/></pre> <h4>Tạo menu location</h4> <p>Trong cái theme mà chúng ta sẽ làm sẽ có một menu hiển thị ra bên ngoài. Do vậy chúng ta sẽ tiến hành viết code để WordPress tạo một Menu Location để chúng ta có thể thêm menu vào đó.</p> <pre class="inline-code"> <p>/*<br/>* Tạo menu cho theme<br/>*/<br/>register_nav_menu ( ‘primary-menu’, __(‘Primary Menu’, ‘thachpham’) );</p> </pre> <p>Ở đoạn trên, mình sẽ tạo một menu có slug tên là <code>primary-menu</code>, và sẽ đặt tên menu này là Primary Menu. Thế cái đoạn <code>__('Primary Menu', 'thachpham')</code> có ý nghĩa gì? Đó chính là một đoạn text mà mình muốn những người sử dụng theme sau này có thể tự dịch được sang ngôn ngữ khác bằng các phần mềm dịch, và thachpham chính là textdomain để nhận diện. Tất cả các đoạn text mà bạn muốn có thể dịch được sẽ đều phải viết có cấu trúc là <code>__('Text', 'textdomain')</code> thay vì chỉ viết thông thường.</p> <h4>Tạo sidebar</h4> <p>Theme này sẽ có một sidebar nên chúng ta sẽ cần tạo ra một sidebar để chút nữa chúng ta có thể viết code hiển thị vào file sidebar.php nhé.</p> <pre class="inline-code"><br/>/*<br/>* Tạo sidebar cho theme<br/>*/<br/>$sidebar = array(<br/>‘name’ => __(‘Main Sidebar’, ‘thachpham’),<br/>‘id’ => ‘main-sidebar’,<br/>‘description’ => ‘Main sidebar for Thachpham theme’,<br/>‘class’ => ‘main-sidebar’,<br/>‘before_title’ => ‘<h3 class="widgettitle">’,<br/>‘after_title’ => ‘</h3>’<br/>);<br/>register_sidebar( $sidebar );<br/></pre> <p>Bây giờ bạn có thể sẽ thấy sidebar đã xuất hiện trong Appearance -> Widgets rồi đó.</p> <h3>Toàn bộ nội dung functions.php trong bài này</h3> <pre class="inline-code"><br/><?php <p>/**<br/>@ Thiết lập các hằng dữ liệu quan trọng<br/>@ THEME_URL = get_stylesheet_directory() – đường dẫn tới thư mục theme<br/>@ CORE = thư mục /core của theme, chứa các file nguồn quan trọng.<br/>**/<br/>define( ‘THEME_URL’, get_stylesheet_directory() );<br/>define( ‘CORE’, THEME_URL . ‘/core’ );</p> <p>/**<br/>@ Load file /core/init.php<br/>@ Đây là file cấu hình ban đầu của theme mà sẽ không nên được thay đổi sau này.<br/>**/</p> <p> require_once( CORE . ‘/init.php’ );</p> <p> /**<br/>@ Thiết lập $content_width để khai báo kích thước chiều rộng của nội dung<br/>**/<br/>if ( ! isset( $content_width ) ) {<br/>/*<br/>* Nếu biến $content_width chưa có dữ liệu thì gán giá trị cho nó<br/>*/<br/>$content_width = 620;<br/>}</p> <p>/**<br/>@ Thiết lập các chức năng sẽ được theme hỗ trợ<br/>**/<br/>if ( ! function_exists( ‘thachpham_theme_setup’ ) ) {<br/>/*<br/>* Nếu chưa có hàm thachpham_theme_setup() thì sẽ tạo mới hàm đó<br/>*/<br/>function thachpham_theme_setup() {<br/>/*<br/>* Thiết lập theme có thể dịch được<br/>*/<br/>$language_folder = THEME_URL . ‘/languages’;<br/>load_theme_textdomain( ‘thachpham’, $language_folder );</p> <p> /*<br/>* Tự chèn RSS Feed links trong <head><br/>*/<br/>add_theme_support( ‘automatic-feed-links’ );</p> <p> /*<br/>* Thêm chức năng post thumbnail<br/>*/<br/>add_theme_support( ‘post-thumbnails’ );</p> <p> /*<br/>* Thêm chức năng title-tag để tự thêm <title><br/>*/<br/>add_theme_support( ‘title-tag’ );</p> <p> /*<br/>* Thêm chức năng post format<br/>*/<br/>add_theme_support( ‘post-formats’,<br/>array(<br/>‘video’,<br/>‘image’,<br/>‘audio’,<br/>‘gallery’<br/>)<br/>);</p> <p> /*<br/>* Thêm chức năng custom background<br/>*/<br/>$default_background = array(<br/>‘default-color’ => ‘#e8e8e8’,<br/>);<br/>add_theme_support( ‘custom-background’, $default_background );</p> <p> /*<br/>* Tạo menu cho theme<br/>*/<br/>register_nav_menu ( ‘primary-menu’, __(‘Primary Menu’, ‘thachpham’) );</p> <p> /*<br/>* Tạo sidebar cho theme<br/>*/<br/>$sidebar = array(<br/>‘name’ => __(‘Main Sidebar’, ‘thachpham’),<br/>‘id’ => ‘main-sidebar’,<br/>‘description’ => ‘Main sidebar for Thachpham theme’,<br/>‘class’ => ‘main-sidebar’,<br/>‘before_title’ => ‘<h3 class="widgettitle">’,<br/>‘after_sidebar’ => ‘</h3>’<br/>);<br/>register_sidebar( $sidebar );<br/>}<br/>add_action ( ‘init’, ‘thachpham_theme_setup’ );</p> <p> }<br/></p></pre> <h3>Lời kết</h3> <p>Vậy là trong bài này chúng ta đã có một file functions.php khá đầy đủ các tính năng cần thiết trong theme rồi. Thêm vào đó, cũng ta đã có thêm thư mục /core trong theme và file init.php trong đó nhưng chưa có nội dung.</p> <p>Ở bài sau, chúng ta sẽ đi qua việc viết thẳng đến nội dung của file header.php của theme nhé.</p> </p></div> <p><script type="rocketlazyloadscript"> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1796331777265440'); fbq('track', 'PageView'); </script><script type="rocketlazyloadscript" data-cfasync="false">(function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/vi/sdk.js#xfbml=1&version=v9.0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script><br /> Nguồn: thachpham</p> <div class="blog-share text-center"><div class="is-divider medium"></div><div class="social-icons share-icons share-row relative" ><a href="whatsapp://send?text=Vi%E1%BA%BFt%20code%20cho%20file%20functions.php%20%7C%20Thi%E1%BA%BFt%20K%E1%BA%BF%20Web%2039 - https://thietkeweb39.com/wordpress/viet-code-cho-file-functions-php-thiet-ke-web-39" data-action="share/whatsapp/share" class="icon button circle is-outline tooltip whatsapp show-for-medium" title="Share on WhatsApp"><i class="icon-whatsapp"></i></a><a href="//www.facebook.com/sharer.php?u=https://thietkeweb39.com/wordpress/viet-code-cho-file-functions-php-thiet-ke-web-39" data-label="Facebook" onclick="window.open(this.href,this.title,'width=500,height=500,top=300px,left=300px'); return false;" rel="noopener noreferrer nofollow" target="_blank" class="icon button circle is-outline tooltip facebook" title="Share on Facebook"><i class="icon-facebook" ></i></a><a href="//twitter.com/share?url=https://thietkeweb39.com/wordpress/viet-code-cho-file-functions-php-thiet-ke-web-39" onclick="window.open(this.href,this.title,'width=500,height=500,top=300px,left=300px'); return false;" rel="noopener noreferrer nofollow" target="_blank" class="icon button circle is-outline tooltip twitter" title="Share on Twitter"><i class="icon-twitter" ></i></a><a href="mailto:enteryour@addresshere.com?subject=Vi%E1%BA%BFt%20code%20cho%20file%20functions.php%20%7C%20Thi%E1%BA%BFt%20K%E1%BA%BF%20Web%2039&body=Check%20this%20out:%20https://thietkeweb39.com/wordpress/viet-code-cho-file-functions-php-thiet-ke-web-39" rel="nofollow" class="icon button circle is-outline tooltip email" title="Email to a Friend"><i class="icon-envelop" ></i></a><a href="//pinterest.com/pin/create/button/?url=https://thietkeweb39.com/wordpress/viet-code-cho-file-functions-php-thiet-ke-web-39&media=https://thietkeweb39.com/wp-content/uploads/2021/07/lap-trinh-theme-cover.png&description=Vi%E1%BA%BFt%20code%20cho%20file%20functions.php%20%7C%20Thi%E1%BA%BFt%20K%E1%BA%BF%20Web%2039" onclick="window.open(this.href,this.title,'width=500,height=500,top=300px,left=300px'); return false;" rel="noopener noreferrer nofollow" target="_blank" class="icon button circle is-outline tooltip pinterest" title="Pin on Pinterest"><i class="icon-pinterest" ></i></a><a href="//www.linkedin.com/shareArticle?mini=true&url=https://thietkeweb39.com/wordpress/viet-code-cho-file-functions-php-thiet-ke-web-39&title=Vi%E1%BA%BFt%20code%20cho%20file%20functions.php%20%7C%20Thi%E1%BA%BFt%20K%E1%BA%BF%20Web%2039" onclick="window.open(this.href,this.title,'width=500,height=500,top=300px,left=300px'); return false;" rel="noopener noreferrer nofollow" target="_blank" class="icon button circle is-outline tooltip linkedin" title="Share on LinkedIn"><i class="icon-linkedin" ></i></a></div></div></div> <footer class="entry-meta text-center"> This entry was posted in <a href="https://thietkeweb39.com/wordpress" rel="category tag">Wordpress</a>. Bookmark the <a href="https://thietkeweb39.com/wordpress/viet-code-cho-file-functions-php-thiet-ke-web-39" title="Permalink to Viết code cho file functions.php | Thiết Kế Web 39" rel="bookmark">permalink</a>. </footer> <nav role="navigation" id="nav-below" class="navigation-post"> <div class="flex-row next-prev-nav bt bb"> <div class="flex-col flex-grow nav-prev text-left"> <div class="nav-previous"><a href="https://thietkeweb39.com/kien-thuc/seo/phan-biet-ma-chuyen-huong-301-va-302-chi-trong-mot-not-nhac-thiet-ke-web-39" rel="prev"><span class="hide-for-small"><i class="icon-angle-left" ></i></span> Phân Biệt Mã Chuyển Hướng 301 Và 302 Chỉ Trong Một Nốt Nhạc | Thiết Kế Web 39</a></div> </div> <div class="flex-col flex-grow nav-next text-right"> <div class="nav-next"><a href="https://thietkeweb39.com/kien-thuc/seo/google-trends-ba%cc%a3n-da%cc%83-thau-chieu-thuc-ap-dung-google-trends-trong-seo-thiet-ke-web-39" rel="next">Google Trends: Bạn Đã Thấu Chiêu Thức Áp Dụng Google Trends Trong SEO? | Thiết Kế Web 39 <span class="hide-for-small"><i class="icon-angle-right" ></i></span></a></div> </div> </div> </nav> </div> </article> <div id="comments" class="comments-area"> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/wordpress/viet-code-cho-file-functions-php-thiet-ke-web-39#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://thietkeweb39.com/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> Required fields are marked <span class="required">*</span></p><p class="comment-form-comment"><label for="comment">Comment</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea></p><p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" required='required' /></p> <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" required='required' /></p> <p class="comment-form-url"><label for="url">Website</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" /></p> <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Save my name, email, and website in this browser for the next time I comment.</label></p> <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='1197' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p><input type="hidden" id="ak_js" name="ak_js" value="21"/><textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100" style="display: none !important;"></textarea></form> </div><!-- #respond --> </div> </div> <div class="post-sidebar large-3 col"> <div id="secondary" class="widget-area " role="complementary"> <aside id="search-2" class="widget widget_search"><form method="get" class="searchform" action="https://thietkeweb39.com/" role="search"> <div class="flex-row relative"> <div class="flex-col flex-grow"> <input type="search" class="search-field mb-0" name="s" value="" id="s" placeholder="Search…" /> </div> <div class="flex-col"> <button type="submit" class="ux-search-submit submit-button secondary button icon mb-0" aria-label="Submit"> <i class="icon-search" ></i> </button> </div> </div> <div class="live-search-results text-left z-top"></div> </form> </aside><aside id="categories-3" class="widget widget_categories"><span class="widget-title "><span>Categories</span></span><div class="is-divider small"></div> <ul> <li class="cat-item cat-item-3"><a href="https://thietkeweb39.com/kien-thuc">Kiến thức</a> </li> <li class="cat-item cat-item-15"><a href="https://thietkeweb39.com/marketing">Marketing</a> </li> <li class="cat-item cat-item-16"><a href="https://thietkeweb39.com/seo">SEO</a> </li> <li class="cat-item cat-item-5"><a href="https://thietkeweb39.com/wordpress">Wordpress</a> </li> </ul> </aside> <aside id="flatsome_recent_posts-2" class="widget flatsome_recent_posts"> <span class="widget-title "><span>Bài viết liên quan</span></span><div class="is-divider small"></div> <ul> <li class="recent-blog-posts-li"> <div class="flex-row recent-blog-posts align-top pt-half pb-half"> <div class="flex-col mr-half"> <div class="badge post-date badge-outline"> <div class="badge-inner bg-fill" style="background: url(https://thietkeweb39.com/wp-content/uploads/2021/07/cloudflare-ssl-150x150.png); border:0;"> </div> </div> </div> <div class="flex-col flex-grow"> <a href="https://thietkeweb39.com/wordpress/cai-dat-ssl-mien-phi-tu-cloudflare-thiet-ke-web-39" title="Cài đặt SSL miễn phí từ CloudFlare | Thiết Kế Web 39">Cài đặt SSL miễn phí từ CloudFlare | Thiết Kế Web 39</a> <span class="post_comments op-7 block is-xsmall"><a href="https://thietkeweb39.com/wordpress/cai-dat-ssl-mien-phi-tu-cloudflare-thiet-ke-web-39#respond"></a></span> </div> </div> </li> <li class="recent-blog-posts-li"> <div class="flex-row recent-blog-posts align-top pt-half pb-half"> <div class="flex-col mr-half"> <div class="badge post-date badge-outline"> <div class="badge-inner bg-fill" style="background: url(https://thietkeweb39.com/wp-content/uploads/2021/07/su-dung-tu-khoa-lsi-150x150.jpg); border:0;"> </div> </div> </div> <div class="flex-col flex-grow"> <a href="https://thietkeweb39.com/kien-thuc/seo/lsi-keyword-la-gi-va-nhung-dieu-can-biet-phan-3-thiet-ke-web-39" title="LSI Keyword Là Gì Và Những Điều Cần Biết ( Phần 3) | Thiết Kế Web 39">LSI Keyword Là Gì Và Những Điều Cần Biết ( Phần 3) | Thiết Kế Web 39</a> <span class="post_comments op-7 block is-xsmall"><a href="https://thietkeweb39.com/kien-thuc/seo/lsi-keyword-la-gi-va-nhung-dieu-can-biet-phan-3-thiet-ke-web-39#respond"></a></span> </div> </div> </li> <li class="recent-blog-posts-li"> <div class="flex-row recent-blog-posts align-top pt-half pb-half"> <div class="flex-col mr-half"> <div class="badge post-date badge-outline"> <div class="badge-inner bg-fill" style="background: url(https://thietkeweb39.com/wp-content/uploads/2021/07/1627125789_https-150x150.jpg); border:0;"> </div> </div> </div> <div class="flex-col flex-grow"> <a href="https://thietkeweb39.com/wordpress/cai-dat-chung-chi-ssl-comodo-possitive-len-nginx-thiet-ke-web-39" title="Cài đặt chứng chỉ SSL Comodo Possitive lên NGINX | Thiết Kế Web 39">Cài đặt chứng chỉ SSL Comodo Possitive lên NGINX | Thiết Kế Web 39</a> <span class="post_comments op-7 block is-xsmall"><a href="https://thietkeweb39.com/wordpress/cai-dat-chung-chi-ssl-comodo-possitive-len-nginx-thiet-ke-web-39#respond"></a></span> </div> </div> </li> <li class="recent-blog-posts-li"> <div class="flex-row recent-blog-posts align-top pt-half pb-half"> <div class="flex-col mr-half"> <div class="badge post-date badge-outline"> <div class="badge-inner bg-fill" style="background: url(https://thietkeweb39.com/wp-content/uploads/2021/06/Onpage-website-150x150.jpg); border:0;"> </div> </div> </div> <div class="flex-col flex-grow"> <a href="https://thietkeweb39.com/kien-thuc/seo/3-cong-cu-mien-phi-de-kiem-tra-toan-dien-toc-do-trang-web-cu%cc%89a-ba%cc%a3n-thiet-ke-web-39" title="3 Công Cụ Miễn Phí Để Kiểm Tra Toàn Diện Tốc Độ Trang Web Của Bạn | Thiết Kế Web 39">3 Công Cụ Miễn Phí Để Kiểm Tra Toàn Diện Tốc Độ Trang Web Của Bạn | Thiết Kế Web 39</a> <span class="post_comments op-7 block is-xsmall"><a href="https://thietkeweb39.com/kien-thuc/seo/3-cong-cu-mien-phi-de-kiem-tra-toan-dien-toc-do-trang-web-cu%cc%89a-ba%cc%a3n-thiet-ke-web-39#respond"></a></span> </div> </div> </li> <li class="recent-blog-posts-li"> <div class="flex-row recent-blog-posts align-top pt-half pb-half"> <div class="flex-col mr-half"> <div class="badge post-date badge-outline"> <div class="badge-inner bg-fill" style="background: url(https://thietkeweb39.com/wp-content/uploads/2021/07/share-mashable-150x150.png); border:0;"> </div> </div> </div> <div class="flex-col flex-grow"> <a href="https://thietkeweb39.com/wordpress/20-plugin-wordpress-hay-nhat-thang-10-2014-thiet-ke-web-39" title="20 plugin WordPress hay nhất tháng 10/2014 | Thiết Kế Web 39">20 plugin WordPress hay nhất tháng 10/2014 | Thiết Kế Web 39</a> <span class="post_comments op-7 block is-xsmall"><a href="https://thietkeweb39.com/wordpress/20-plugin-wordpress-hay-nhat-thang-10-2014-thiet-ke-web-39#respond"></a></span> </div> </div> </li> <li class="recent-blog-posts-li"> <div class="flex-row recent-blog-posts align-top pt-half pb-half"> <div class="flex-col mr-half"> <div class="badge post-date badge-outline"> <div class="badge-inner bg-fill" style="background: url(https://thietkeweb39.com/wp-content/uploads/2021/07/cong-ty-seo-cong-huong-150x150.jpg); border:0;"> </div> </div> </div> <div class="flex-col flex-grow"> <a href="https://thietkeweb39.com/kien-thuc/seo/thu-thuat-seo-fanpage-facebook-hieu-qua-ma-khong-pha%cc%89i-ai-cu%cc%83ng-biet-thiet-ke-web-39" title="Thủ Thuật SEO Fanpage Facebook Hiệu Quả Mà Không Phải Ai Cũng Biết | Thiết Kế Web 39">Thủ Thuật SEO Fanpage Facebook Hiệu Quả Mà Không Phải Ai Cũng Biết | Thiết Kế Web 39</a> <span class="post_comments op-7 block is-xsmall"><a href="https://thietkeweb39.com/kien-thuc/seo/thu-thuat-seo-fanpage-facebook-hieu-qua-ma-khong-pha%cc%89i-ai-cu%cc%83ng-biet-thiet-ke-web-39#respond"></a></span> </div> </div> </li> <li class="recent-blog-posts-li"> <div class="flex-row recent-blog-posts align-top pt-half pb-half"> <div class="flex-col mr-half"> <div class="badge post-date badge-outline"> <div class="badge-inner bg-fill" style="background: url(https://thietkeweb39.com/wp-content/uploads/2021/07/8140206324_11c4c0b25e_o-150x150.jpg); border:0;"> </div> </div> </div> <div class="flex-col flex-grow"> <a href="https://thietkeweb39.com/wordpress/host-mien-phi-cho-wordpress-su-dung-nginx-thiet-ke-web-39" title="Host miễn phí cho WordPress sử dụng NGINX | Thiết Kế Web 39">Host miễn phí cho WordPress sử dụng NGINX | Thiết Kế Web 39</a> <span class="post_comments op-7 block is-xsmall"><a href="https://thietkeweb39.com/wordpress/host-mien-phi-cho-wordpress-su-dung-nginx-thiet-ke-web-39#respond"></a></span> </div> </div> </li> <li class="recent-blog-posts-li"> <div class="flex-row recent-blog-posts align-top pt-half pb-half"> <div class="flex-col mr-half"> <div class="badge post-date badge-outline"> <div class="badge-inner bg-fill" style="background: url(https://thietkeweb39.com/wp-content/uploads/2021/07/toi-uu-google-150x150.jpg); border:0;"> </div> </div> </div> <div class="flex-col flex-grow"> <a href="https://thietkeweb39.com/kien-thuc/seo/cac-vi-pham-va-hinh-phat-spam-cua-cong-cu-tim-kiem-thiet-ke-web-39" title="Các Vi Phạm Và Hình Phạt Spam Của Công Cụ Tìm Kiếm | Thiết Kế Web 39">Các Vi Phạm Và Hình Phạt Spam Của Công Cụ Tìm Kiếm | Thiết Kế Web 39</a> <span class="post_comments op-7 block is-xsmall"><a href="https://thietkeweb39.com/kien-thuc/seo/cac-vi-pham-va-hinh-phat-spam-cua-cong-cu-tim-kiem-thiet-ke-web-39#respond"></a></span> </div> </div> </li> <li class="recent-blog-posts-li"> <div class="flex-row recent-blog-posts align-top pt-half pb-half"> <div class="flex-col mr-half"> <div class="badge post-date badge-outline"> <div class="badge-inner bg-fill" style="background: url(https://thietkeweb39.com/wp-content/uploads/2021/07/boenia-theme-150x150.jpg); border:0;"> </div> </div> </div> <div class="flex-col flex-grow"> <a href="https://thietkeweb39.com/wordpress/11-themes-mien-phi-dep-nhat-thang-11-2014-thiet-ke-web-39" title="11 themes miễn phí đẹp nhất tháng 11/2014 | Thiết Kế Web 39">11 themes miễn phí đẹp nhất tháng 11/2014 | Thiết Kế Web 39</a> <span class="post_comments op-7 block is-xsmall"><a href="https://thietkeweb39.com/wordpress/11-themes-mien-phi-dep-nhat-thang-11-2014-thiet-ke-web-39#respond"></a></span> </div> </div> </li> <li class="recent-blog-posts-li"> <div class="flex-row recent-blog-posts align-top pt-half pb-half"> <div class="flex-col mr-half"> <div class="badge post-date badge-outline"> <div class="badge-inner bg-fill" style="background: url(https://thietkeweb39.com/wp-content/uploads/2021/07/cach-lay-backlink-chat-luong-150x150.png); border:0;"> </div> </div> </div> <div class="flex-col flex-grow"> <a href="https://thietkeweb39.com/kien-thuc/seo/mot-so-cach-xay-dung-backlink-chat-luong-thiet-ke-web-39" title="Một Số Cách Xây Dựng Backlink Chất Lượng | Thiết Kế Web 39">Một Số Cách Xây Dựng Backlink Chất Lượng | Thiết Kế Web 39</a> <span class="post_comments op-7 block is-xsmall"><a href="https://thietkeweb39.com/kien-thuc/seo/mot-so-cach-xay-dung-backlink-chat-luong-thiet-ke-web-39#respond"></a></span> </div> </div> </li> </ul> </aside></div> </div> </div> </div> </main> <footer id="footer" class="footer-wrapper"> <section class="section" id="section_1550774813"> <div class="bg section-bg fill bg-fill " > <div class="is-border" style="border-width:0px 0px 0px 0px;"> </div> </div> <div class="section-content relative"> <div class="row" id="row-704664978"> <div id="col-1740613814" class="col small-12 large-12" > <div class="col-inner box-shadow-3" style="background-color:rgba(27, 23, 23, 0.837);" > <div class="row" id="row-256232469"> <div id="col-279920297" class="col medium-11 small-12 large-11" > <div class="col-inner text-center" > <div id="gap-1737563353" class="gap-element clearfix" style="display:block; height:auto;"> <style> #gap-1737563353 { padding-top: 49px; } </style> </div> <div id="text-2386849548" class="text"> <h3 class="uppercase"><span style="font-size: 110%; color: #14999d; font-family: arial, helvetica, sans-serif;"><strong>THIETKEWEB39.COM</strong></span></h3> <p><span style="color: #14999d;">Hotline: 08 6688 6059</span></p> <p><span style="color: #14999d;">Số 6 Đường số 9, Cityland Park Hills, Phường 10, Quận Gò Vấp, Tp. HCM</span></p> <style> #text-2386849548 { font-size: 1rem; line-height: 1.5; text-align: center; } </style> </div> </div> <style> #col-279920297 > .col-inner { padding: 0px 0px 0px 0px; } </style> </div> <style> #row-256232469 > .col > .col-inner { padding: 20px 20px 20px 20px; } </style> </div> </div> </div> </div> </div> <style> #section_1550774813 { padding-top: 40px; padding-bottom: 40px; } #section_1550774813 .section-bg.bg-loaded { background-image: url(https://thietkeweb39.com/wp-content/uploads/2021/01/photo-1479920252409-6e3d8e8d4866.jpg); } </style> </section> <div class="absolute-footer dark medium-text-center text-center"> <div class="container clearfix"> <div class="footer-secondary pull-right"> <div class="payment-icons inline-block"><div class="payment-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 32"> <path d="M10.781 7.688c-0.251-1.283-1.219-1.688-2.344-1.688h-8.376l-0.061 0.405c5.749 1.469 10.469 4.595 12.595 10.501l-1.813-9.219zM13.125 19.688l-0.531-2.781c-1.096-2.907-3.752-5.594-6.752-6.813l4.219 15.939h5.469l8.157-20.032h-5.501l-5.062 13.688zM27.72 26.061l3.248-20.061h-5.187l-3.251 20.061h5.189zM41.875 5.656c-5.125 0-8.717 2.72-8.749 6.624-0.032 2.877 2.563 4.469 4.531 5.439 2.032 0.968 2.688 1.624 2.688 2.499 0 1.344-1.624 1.939-3.093 1.939-2.093 0-3.219-0.251-4.875-1.032l-0.688-0.344-0.719 4.499c1.219 0.563 3.437 1.064 5.781 1.064 5.437 0.032 8.97-2.688 9.032-6.843 0-2.282-1.405-4-4.376-5.439-1.811-0.904-2.904-1.563-2.904-2.499 0-0.843 0.936-1.72 2.968-1.72 1.688-0.029 2.936 0.314 3.875 0.752l0.469 0.248 0.717-4.344c-1.032-0.406-2.656-0.844-4.656-0.844zM55.813 6c-1.251 0-2.189 0.376-2.72 1.688l-7.688 18.374h5.437c0.877-2.467 1.096-3 1.096-3 0.592 0 5.875 0 6.624 0 0 0 0.157 0.688 0.624 3h4.813l-4.187-20.061h-4zM53.405 18.938c0 0 0.437-1.157 2.064-5.594-0.032 0.032 0.437-1.157 0.688-1.907l0.374 1.72c0.968 4.781 1.189 5.781 1.189 5.781-0.813 0-3.283 0-4.315 0z"></path> </svg> </div><div class="payment-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 32"> <path d="M35.255 12.078h-2.396c-0.229 0-0.444 0.114-0.572 0.303l-3.306 4.868-1.4-4.678c-0.088-0.292-0.358-0.493-0.663-0.493h-2.355c-0.284 0-0.485 0.28-0.393 0.548l2.638 7.745-2.481 3.501c-0.195 0.275 0.002 0.655 0.339 0.655h2.394c0.227 0 0.439-0.111 0.569-0.297l7.968-11.501c0.191-0.275-0.006-0.652-0.341-0.652zM19.237 16.718c-0.23 1.362-1.311 2.276-2.691 2.276-0.691 0-1.245-0.223-1.601-0.644-0.353-0.417-0.485-1.012-0.374-1.674 0.214-1.35 1.313-2.294 2.671-2.294 0.677 0 1.227 0.225 1.589 0.65 0.365 0.428 0.509 1.027 0.404 1.686zM22.559 12.078h-2.384c-0.204 0-0.378 0.148-0.41 0.351l-0.104 0.666-0.166-0.241c-0.517-0.749-1.667-1-2.817-1-2.634 0-4.883 1.996-5.321 4.796-0.228 1.396 0.095 2.731 0.888 3.662 0.727 0.856 1.765 1.212 3.002 1.212 2.123 0 3.3-1.363 3.3-1.363l-0.106 0.662c-0.040 0.252 0.155 0.479 0.41 0.479h2.147c0.341 0 0.63-0.247 0.684-0.584l1.289-8.161c0.040-0.251-0.155-0.479-0.41-0.479zM8.254 12.135c-0.272 1.787-1.636 1.787-2.957 1.787h-0.751l0.527-3.336c0.031-0.202 0.205-0.35 0.41-0.35h0.345c0.899 0 1.747 0 2.185 0.511 0.262 0.307 0.341 0.761 0.242 1.388zM7.68 7.473h-4.979c-0.341 0-0.63 0.248-0.684 0.584l-2.013 12.765c-0.040 0.252 0.155 0.479 0.41 0.479h2.378c0.34 0 0.63-0.248 0.683-0.584l0.543-3.444c0.053-0.337 0.343-0.584 0.683-0.584h1.575c3.279 0 5.172-1.587 5.666-4.732 0.223-1.375 0.009-2.456-0.635-3.212-0.707-0.832-1.962-1.272-3.628-1.272zM60.876 7.823l-2.043 12.998c-0.040 0.252 0.155 0.479 0.41 0.479h2.055c0.34 0 0.63-0.248 0.683-0.584l2.015-12.765c0.040-0.252-0.155-0.479-0.41-0.479h-2.299c-0.205 0.001-0.379 0.148-0.41 0.351zM54.744 16.718c-0.23 1.362-1.311 2.276-2.691 2.276-0.691 0-1.245-0.223-1.601-0.644-0.353-0.417-0.485-1.012-0.374-1.674 0.214-1.35 1.313-2.294 2.671-2.294 0.677 0 1.227 0.225 1.589 0.65 0.365 0.428 0.509 1.027 0.404 1.686zM58.066 12.078h-2.384c-0.204 0-0.378 0.148-0.41 0.351l-0.104 0.666-0.167-0.241c-0.516-0.749-1.667-1-2.816-1-2.634 0-4.883 1.996-5.321 4.796-0.228 1.396 0.095 2.731 0.888 3.662 0.727 0.856 1.765 1.212 3.002 1.212 2.123 0 3.3-1.363 3.3-1.363l-0.106 0.662c-0.040 0.252 0.155 0.479 0.41 0.479h2.147c0.341 0 0.63-0.247 0.684-0.584l1.289-8.161c0.040-0.252-0.156-0.479-0.41-0.479zM43.761 12.135c-0.272 1.787-1.636 1.787-2.957 1.787h-0.751l0.527-3.336c0.031-0.202 0.205-0.35 0.41-0.35h0.345c0.899 0 1.747 0 2.185 0.511 0.261 0.307 0.34 0.761 0.241 1.388zM43.187 7.473h-4.979c-0.341 0-0.63 0.248-0.684 0.584l-2.013 12.765c-0.040 0.252 0.156 0.479 0.41 0.479h2.554c0.238 0 0.441-0.173 0.478-0.408l0.572-3.619c0.053-0.337 0.343-0.584 0.683-0.584h1.575c3.279 0 5.172-1.587 5.666-4.732 0.223-1.375 0.009-2.456-0.635-3.212-0.707-0.832-1.962-1.272-3.627-1.272z"></path> </svg> </div><div class="payment-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 32"> <path d="M7.114 14.656c-1.375-0.5-2.125-0.906-2.125-1.531 0-0.531 0.437-0.812 1.188-0.812 1.437 0 2.875 0.531 3.875 1.031l0.563-3.5c-0.781-0.375-2.406-1-4.656-1-1.594 0-2.906 0.406-3.844 1.188-1 0.812-1.5 2-1.5 3.406 0 2.563 1.563 3.688 4.125 4.594 1.625 0.594 2.188 1 2.188 1.656 0 0.625-0.531 0.969-1.5 0.969-1.188 0-3.156-0.594-4.437-1.343l-0.563 3.531c1.094 0.625 3.125 1.281 5.25 1.281 1.688 0 3.063-0.406 4.031-1.157 1.063-0.843 1.594-2.062 1.594-3.656-0.001-2.625-1.595-3.719-4.188-4.657zM21.114 9.125h-3v-4.219l-4.031 0.656-0.563 3.563-1.437 0.25-0.531 3.219h1.937v6.844c0 1.781 0.469 3 1.375 3.75 0.781 0.625 1.907 0.938 3.469 0.938 1.219 0 1.937-0.219 2.468-0.344v-3.688c-0.282 0.063-0.938 0.22-1.375 0.22-0.906 0-1.313-0.5-1.313-1.563v-6.156h2.406l0.595-3.469zM30.396 9.031c-0.313-0.062-0.594-0.093-0.876-0.093-1.312 0-2.374 0.687-2.781 1.937l-0.313-1.75h-4.093v14.719h4.687v-9.563c0.594-0.719 1.437-0.968 2.563-0.968 0.25 0 0.5 0 0.812 0.062v-4.344zM33.895 2.719c-1.375 0-2.468 1.094-2.468 2.469s1.094 2.5 2.468 2.5 2.469-1.124 2.469-2.5-1.094-2.469-2.469-2.469zM36.239 23.844v-14.719h-4.687v14.719h4.687zM49.583 10.468c-0.843-1.094-2-1.625-3.469-1.625-1.343 0-2.531 0.563-3.656 1.75l-0.25-1.469h-4.125v20.155l4.688-0.781v-4.719c0.719 0.219 1.469 0.344 2.125 0.344 1.157 0 2.876-0.313 4.188-1.75 1.281-1.375 1.907-3.5 1.907-6.313 0-2.499-0.469-4.405-1.407-5.593zM45.677 19.532c-0.375 0.687-0.969 1.094-1.625 1.094-0.468 0-0.906-0.093-1.281-0.281v-7c0.812-0.844 1.531-0.938 1.781-0.938 1.188 0 1.781 1.313 1.781 3.812 0.001 1.437-0.219 2.531-0.656 3.313zM62.927 10.843c-1.032-1.312-2.563-2-4.501-2-4 0-6.468 2.938-6.468 7.688 0 2.625 0.656 4.625 1.968 5.875 1.157 1.157 2.844 1.719 5.032 1.719 2 0 3.844-0.469 5-1.251l-0.501-3.219c-1.157 0.625-2.5 0.969-4 0.969-0.906 0-1.532-0.188-1.969-0.594-0.5-0.406-0.781-1.094-0.875-2.062h7.75c0.031-0.219 0.062-1.281 0.062-1.625 0.001-2.344-0.5-4.188-1.499-5.5zM56.583 15.094c0.125-2.093 0.687-3.062 1.75-3.062s1.625 1 1.687 3.062h-3.437z"></path> </svg> </div><div class="payment-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 32"> <path d="M42.667-0c-4.099 0-7.836 1.543-10.667 4.077-2.831-2.534-6.568-4.077-10.667-4.077-8.836 0-16 7.163-16 16s7.164 16 16 16c4.099 0 7.835-1.543 10.667-4.077 2.831 2.534 6.568 4.077 10.667 4.077 8.837 0 16-7.163 16-16s-7.163-16-16-16zM11.934 19.828l0.924-5.809-2.112 5.809h-1.188v-5.809l-1.056 5.809h-1.584l1.32-7.657h2.376v4.753l1.716-4.753h2.508l-1.32 7.657h-1.585zM19.327 18.244c-0.088 0.528-0.178 0.924-0.264 1.188v0.396h-1.32v-0.66c-0.353 0.528-0.924 0.792-1.716 0.792-0.442 0-0.792-0.132-1.056-0.396-0.264-0.351-0.396-0.792-0.396-1.32 0-0.792 0.218-1.364 0.66-1.716 0.614-0.44 1.364-0.66 2.244-0.66h0.66v-0.396c0-0.351-0.353-0.528-1.056-0.528-0.442 0-1.012 0.088-1.716 0.264 0.086-0.351 0.175-0.792 0.264-1.32 0.703-0.264 1.32-0.396 1.848-0.396 1.496 0 2.244 0.616 2.244 1.848 0 0.353-0.046 0.749-0.132 1.188-0.089 0.616-0.179 1.188-0.264 1.716zM24.079 15.076c-0.264-0.086-0.66-0.132-1.188-0.132s-0.792 0.177-0.792 0.528c0 0.177 0.044 0.31 0.132 0.396l0.528 0.264c0.792 0.442 1.188 1.012 1.188 1.716 0 1.409-0.838 2.112-2.508 2.112-0.792 0-1.366-0.044-1.716-0.132 0.086-0.351 0.175-0.836 0.264-1.452 0.703 0.177 1.188 0.264 1.452 0.264 0.614 0 0.924-0.175 0.924-0.528 0-0.175-0.046-0.308-0.132-0.396-0.178-0.175-0.396-0.308-0.66-0.396-0.792-0.351-1.188-0.924-1.188-1.716 0-1.407 0.792-2.112 2.376-2.112 0.792 0 1.32 0.045 1.584 0.132l-0.265 1.451zM27.512 15.208h-0.924c0 0.442-0.046 0.838-0.132 1.188 0 0.088-0.022 0.264-0.066 0.528-0.046 0.264-0.112 0.442-0.198 0.528v0.528c0 0.353 0.175 0.528 0.528 0.528 0.175 0 0.35-0.044 0.528-0.132l-0.264 1.452c-0.264 0.088-0.66 0.132-1.188 0.132-0.881 0-1.32-0.44-1.32-1.32 0-0.528 0.086-1.099 0.264-1.716l0.66-4.225h1.584l-0.132 0.924h0.792l-0.132 1.585zM32.66 17.32h-3.3c0 0.442 0.086 0.749 0.264 0.924 0.264 0.264 0.66 0.396 1.188 0.396s1.1-0.175 1.716-0.528l-0.264 1.584c-0.442 0.177-1.012 0.264-1.716 0.264-1.848 0-2.772-0.924-2.772-2.773 0-1.142 0.264-2.024 0.792-2.64 0.528-0.703 1.188-1.056 1.98-1.056 0.703 0 1.274 0.22 1.716 0.66 0.35 0.353 0.528 0.881 0.528 1.584 0.001 0.617-0.046 1.145-0.132 1.585zM35.3 16.132c-0.264 0.97-0.484 2.201-0.66 3.697h-1.716l0.132-0.396c0.35-2.463 0.614-4.4 0.792-5.809h1.584l-0.132 0.924c0.264-0.44 0.528-0.703 0.792-0.792 0.264-0.264 0.528-0.308 0.792-0.132-0.088 0.088-0.31 0.706-0.66 1.848-0.353-0.086-0.661 0.132-0.925 0.66zM41.241 19.697c-0.353 0.177-0.838 0.264-1.452 0.264-0.881 0-1.584-0.308-2.112-0.924-0.528-0.528-0.792-1.32-0.792-2.376 0-1.32 0.35-2.42 1.056-3.3 0.614-0.879 1.496-1.32 2.64-1.32 0.44 0 1.056 0.132 1.848 0.396l-0.264 1.584c-0.528-0.264-1.012-0.396-1.452-0.396-0.707 0-1.235 0.264-1.584 0.792-0.353 0.442-0.528 1.144-0.528 2.112 0 0.616 0.132 1.056 0.396 1.32 0.264 0.353 0.614 0.528 1.056 0.528 0.44 0 0.924-0.132 1.452-0.396l-0.264 1.717zM47.115 15.868c-0.046 0.264-0.066 0.484-0.066 0.66-0.088 0.442-0.178 1.035-0.264 1.782-0.088 0.749-0.178 1.254-0.264 1.518h-1.32v-0.66c-0.353 0.528-0.924 0.792-1.716 0.792-0.442 0-0.792-0.132-1.056-0.396-0.264-0.351-0.396-0.792-0.396-1.32 0-0.792 0.218-1.364 0.66-1.716 0.614-0.44 1.32-0.66 2.112-0.66h0.66c0.086-0.086 0.132-0.218 0.132-0.396 0-0.351-0.353-0.528-1.056-0.528-0.442 0-1.012 0.088-1.716 0.264 0-0.351 0.086-0.792 0.264-1.32 0.703-0.264 1.32-0.396 1.848-0.396 1.496 0 2.245 0.616 2.245 1.848 0.001 0.089-0.021 0.264-0.065 0.529zM49.69 16.132c-0.178 0.528-0.396 1.762-0.66 3.697h-1.716l0.132-0.396c0.35-1.935 0.614-3.872 0.792-5.809h1.584c0 0.353-0.046 0.66-0.132 0.924 0.264-0.44 0.528-0.703 0.792-0.792 0.35-0.175 0.614-0.218 0.792-0.132-0.353 0.442-0.574 1.056-0.66 1.848-0.353-0.086-0.66 0.132-0.925 0.66zM54.178 19.828l0.132-0.528c-0.353 0.442-0.838 0.66-1.452 0.66-0.707 0-1.188-0.218-1.452-0.66-0.442-0.614-0.66-1.232-0.66-1.848 0-1.142 0.308-2.067 0.924-2.773 0.44-0.703 1.056-1.056 1.848-1.056 0.528 0 1.056 0.264 1.584 0.792l0.264-2.244h1.716l-1.32 7.657h-1.585zM16.159 17.98c0 0.442 0.175 0.66 0.528 0.66 0.35 0 0.614-0.132 0.792-0.396 0.264-0.264 0.396-0.66 0.396-1.188h-0.397c-0.881 0-1.32 0.31-1.32 0.924zM31.076 15.076c-0.088 0-0.178-0.043-0.264-0.132h-0.264c-0.528 0-0.881 0.353-1.056 1.056h1.848v-0.396l-0.132-0.264c-0.001-0.086-0.047-0.175-0.133-0.264zM43.617 17.98c0 0.442 0.175 0.66 0.528 0.66 0.35 0 0.614-0.132 0.792-0.396 0.264-0.264 0.396-0.66 0.396-1.188h-0.396c-0.881 0-1.32 0.31-1.32 0.924zM53.782 15.076c-0.353 0-0.66 0.22-0.924 0.66-0.178 0.264-0.264 0.749-0.264 1.452 0 0.792 0.264 1.188 0.792 1.188 0.35 0 0.66-0.175 0.924-0.528 0.264-0.351 0.396-0.879 0.396-1.584-0.001-0.792-0.311-1.188-0.925-1.188z"></path> </svg> </div><div class="payment-icon"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 32"> <path d="M13.043 8.356c-0.46 0-0.873 0.138-1.24 0.413s-0.662 0.681-0.885 1.217c-0.223 0.536-0.334 1.112-0.334 1.727 0 0.568 0.119 0.99 0.358 1.265s0.619 0.413 1.141 0.413c0.508 0 1.096-0.131 1.765-0.393v1.327c-0.693 0.262-1.389 0.393-2.089 0.393-0.884 0-1.572-0.254-2.063-0.763s-0.736-1.229-0.736-2.161c0-0.892 0.181-1.712 0.543-2.462s0.846-1.32 1.452-1.709 1.302-0.584 2.089-0.584c0.435 0 0.822 0.038 1.159 0.115s0.7 0.217 1.086 0.421l-0.616 1.276c-0.369-0.201-0.673-0.333-0.914-0.398s-0.478-0.097-0.715-0.097zM19.524 12.842h-2.47l-0.898 1.776h-1.671l3.999-7.491h1.948l0.767 7.491h-1.551l-0.125-1.776zM19.446 11.515l-0.136-1.786c-0.035-0.445-0.052-0.876-0.052-1.291v-0.184c-0.153 0.408-0.343 0.84-0.569 1.296l-0.982 1.965h1.739zM27.049 12.413c0 0.711-0.257 1.273-0.773 1.686s-1.213 0.62-2.094 0.62c-0.769 0-1.389-0.153-1.859-0.46v-1.398c0.672 0.367 1.295 0.551 1.869 0.551 0.39 0 0.694-0.072 0.914-0.217s0.329-0.343 0.329-0.595c0-0.147-0.024-0.275-0.070-0.385s-0.114-0.214-0.201-0.309c-0.087-0.095-0.303-0.269-0.648-0.52-0.481-0.337-0.818-0.67-1.013-1s-0.293-0.685-0.293-1.066c0-0.439 0.108-0.831 0.324-1.176s0.523-0.614 0.922-0.806 0.857-0.288 1.376-0.288c0.755 0 1.446 0.168 2.073 0.505l-0.569 1.189c-0.543-0.252-1.044-0.378-1.504-0.378-0.289 0-0.525 0.077-0.71 0.23s-0.276 0.355-0.276 0.607c0 0.207 0.058 0.389 0.172 0.543s0.372 0.36 0.773 0.615c0.421 0.272 0.736 0.572 0.945 0.9s0.313 0.712 0.313 1.151zM33.969 14.618h-1.597l0.7-3.22h-2.46l-0.7 3.22h-1.592l1.613-7.46h1.597l-0.632 2.924h2.459l0.632-2.924h1.592l-1.613 7.46zM46.319 9.831c0 0.963-0.172 1.824-0.517 2.585s-0.816 1.334-1.415 1.722c-0.598 0.388-1.288 0.582-2.067 0.582-0.891 0-1.587-0.251-2.086-0.753s-0.749-1.198-0.749-2.090c0-0.902 0.172-1.731 0.517-2.488s0.82-1.338 1.425-1.743c0.605-0.405 1.306-0.607 2.099-0.607 0.888 0 1.575 0.245 2.063 0.735s0.73 1.176 0.73 2.056zM43.395 8.356c-0.421 0-0.808 0.155-1.159 0.467s-0.627 0.739-0.828 1.283-0.3 1.135-0.3 1.771c0 0.5 0.116 0.877 0.348 1.133s0.558 0.383 0.979 0.383 0.805-0.148 1.151-0.444c0.346-0.296 0.617-0.714 0.812-1.255s0.292-1.148 0.292-1.822c0-0.483-0.113-0.856-0.339-1.12-0.227-0.264-0.546-0.396-0.957-0.396zM53.427 14.618h-1.786l-1.859-5.644h-0.031l-0.021 0.163c-0.111 0.735-0.227 1.391-0.344 1.97l-0.757 3.511h-1.436l1.613-7.46h1.864l1.775 5.496h0.021c0.042-0.259 0.109-0.628 0.203-1.107s0.407-1.942 0.94-4.388h1.43l-1.613 7.461zM13.296 20.185c0 0.98-0.177 1.832-0.532 2.556s-0.868 1.274-1.539 1.652c-0.672 0.379-1.464 0.568-2.376 0.568h-2.449l1.678-7.68h2.15c0.977 0 1.733 0.25 2.267 0.751s0.801 1.219 0.801 2.154zM8.925 23.615c0.536 0 1.003-0.133 1.401-0.399s0.71-0.657 0.934-1.174c0.225-0.517 0.337-1.108 0.337-1.773 0-0.54-0.131-0.95-0.394-1.232s-0.64-0.423-1.132-0.423h-0.624l-1.097 5.001h0.575zM18.64 24.96h-4.436l1.678-7.68h4.442l-0.293 1.334h-2.78l-0.364 1.686h2.59l-0.299 1.334h-2.59l-0.435 1.98h2.78l-0.293 1.345zM20.509 24.96l1.678-7.68h1.661l-1.39 6.335h2.78l-0.294 1.345h-4.436zM26.547 24.96l1.694-7.68h1.656l-1.694 7.68h-1.656zM33.021 23.389c0.282-0.774 0.481-1.27 0.597-1.487l2.346-4.623h1.716l-4.061 7.68h-1.814l-0.689-7.68h1.602l0.277 4.623c0.015 0.157 0.022 0.39 0.022 0.699-0.007 0.361-0.018 0.623-0.033 0.788h0.038zM41.678 24.96h-4.437l1.678-7.68h4.442l-0.293 1.334h-2.78l-0.364 1.686h2.59l-0.299 1.334h-2.59l-0.435 1.98h2.78l-0.293 1.345zM45.849 22.013l-0.646 2.947h-1.656l1.678-7.68h1.949c0.858 0 1.502 0.179 1.933 0.536s0.646 0.881 0.646 1.571c0 0.554-0.15 1.029-0.451 1.426s-0.733 0.692-1.298 0.885l1.417 3.263h-1.803l-1.124-2.947h-0.646zM46.137 20.689h0.424c0.474 0 0.843-0.1 1.108-0.3s0.396-0.504 0.396-0.914c0-0.287-0.086-0.502-0.258-0.646s-0.442-0.216-0.812-0.216h-0.402l-0.456 2.076zM53.712 20.39l2.031-3.11h1.857l-3.355 4.744-0.646 2.936h-1.645l0.646-2.936-1.281-4.744h1.694l0.7 3.11z"></path> </svg> </div></div> </div> <div class="footer-primary pull-left"> <div class="copyright-footer"> Copyright 2021 © <strong>Thietkeweb39.com</strong> </div> </div> </div> </div> <a href="#top" class="back-to-top button icon invert plain fixed bottom z-1 is-outline hide-for-medium circle" id="top-link"><i class="icon-angle-up" ></i></a> </footer> </div> <div id="main-menu" class="mobile-sidebar no-scrollbar mfp-hide"> <div class="sidebar-menu no-scrollbar "> <ul class="nav nav-sidebar nav-vertical nav-uppercase"> <li class="header-search-form search-form html relative has-icon"> <div class="header-search-form-wrapper"> <div class="searchform-wrapper ux-search-box relative is-normal"><form role="search" method="get" class="searchform" action="https://thietkeweb39.com/"> <div class="flex-row relative"> <div class="flex-col flex-grow"> <label class="screen-reader-text" for="woocommerce-product-search-field-1">Search for:</label> <input type="search" id="woocommerce-product-search-field-1" class="search-field mb-0" placeholder="Search…" value="" name="s" /> <input type="hidden" name="post_type" value="product" /> </div> <div class="flex-col"> <button type="submit" value="Search" class="ux-search-submit submit-button secondary button icon mb-0" aria-label="Submit"> <i class="icon-search" ></i> </button> </div> </div> <div class="live-search-results text-left z-top"></div> </form> </div> </div> </li><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-45"><a href="https://thietkeweb39.com/">Dịch vụ thiết kế website</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-90"><a href="https://thietkeweb39.com/gioi-thieu">Giới thiệu</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-96"><a href="https://thietkeweb39.com/dich-vu">Dịch vụ</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-98"><a href="https://thietkeweb39.com/kien-thuc">Kiến thức</a> <ul class="sub-menu nav-sidebar-ul children"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-237"><a href="https://thietkeweb39.com/marketing">Marketing</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-198"><a href="https://thietkeweb39.com/wordpress">WordPress</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-283"><a href="https://thietkeweb39.com/seo">SEO</a></li> </ul> </li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-95"><a href="https://thietkeweb39.com/lien-he">Liên hệ</a></li> <li class="account-item has-icon menu-item"> <a href="https://thietkeweb39.com/my-account" class="nav-top-link nav-top-not-logged-in"> <span class="header-account-title"> Login </span> </a> </li> <li class="header-newsletter-item has-icon"> <a href="#header-newsletter-signup" class="tooltip" title="Sign up for Newsletter"> <i class="icon-envelop"></i> <span class="header-newsletter-title"> Newsletter </span> </a> </li><li class="html header-social-icons ml-0"> <div class="social-icons follow-icons" ><a href="http://url" target="_blank" data-label="Facebook" rel="noopener noreferrer nofollow" class="icon plain facebook tooltip" title="Follow on Facebook"><i class="icon-facebook" ></i></a><a href="http://url" target="_blank" rel="noopener noreferrer nofollow" data-label="Instagram" class="icon plain instagram tooltip" title="Follow on Instagram"><i class="icon-instagram" ></i></a><a href="http://url" target="_blank" data-label="Twitter" rel="noopener noreferrer nofollow" class="icon plain twitter tooltip" title="Follow on Twitter"><i class="icon-twitter" ></i></a><a href="mailto:your@email" data-label="E-mail" rel="nofollow" class="icon plain email tooltip" title="Send us an email"><i class="icon-envelop" ></i></a></div></li> </ul> </div> </div> <div id="login-form-popup" class="lightbox-content mfp-hide"> <div class="woocommerce-notices-wrapper"></div> <div class="account-container lightbox-inner"> <div class="account-login-inner"> <h3 class="uppercase">Login</h3> <form class="woocommerce-form woocommerce-form-login login" method="post"> <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> <label for="username">Username or email address <span class="required">*</span></label> <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="username" id="username" autocomplete="username" value="" /> </p> <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide"> <label for="password">Password <span class="required">*</span></label> <input class="woocommerce-Input woocommerce-Input--text input-text" type="password" name="password" id="password" autocomplete="current-password" /> </p> <p class="form-row"> <label class="woocommerce-form__label woocommerce-form__label-for-checkbox woocommerce-form-login__rememberme"> <input class="woocommerce-form__input woocommerce-form__input-checkbox" name="rememberme" type="checkbox" id="rememberme" value="forever" /> <span>Remember me</span> </label> <input type="hidden" id="woocommerce-login-nonce" name="woocommerce-login-nonce" value="778afc5fe4" /><input type="hidden" name="_wp_http_referer" value="/wordpress/viet-code-cho-file-functions-php-thiet-ke-web-39" /> <button type="submit" class="woocommerce-button button woocommerce-form-login__submit" name="login" value="Log in">Log in</button> </p> <p class="woocommerce-LostPassword lost_password"> <a href="https://thietkeweb39.com/my-account/lost-password">Lost your password?</a> </p> </form> </div> </div> </div> <script type="text/javascript"> (function () { var c = document.body.className; c = c.replace(/woocommerce-no-js/, 'woocommerce-js'); document.body.className = c; })(); </script> <script type='text/javascript' src='https://thietkeweb39.com/wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.13.7' id='regenerator-runtime-js'></script> <script type='text/javascript' src='https://thietkeweb39.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0' id='wp-polyfill-js'></script> <script type='text/javascript' id='contact-form-7-js-extra'> /* <![CDATA[ */ var wpcf7 = {"api":{"root":"https:\/\/thietkeweb39.com\/wp-json\/","namespace":"contact-form-7\/v1"}}; /* ]]> */ </script> <script type='text/javascript' src='https://thietkeweb39.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.4.2' id='contact-form-7-js'></script> <script type='text/javascript' src='https://thietkeweb39.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.70' id='jquery-blockui-js'></script> <script type='text/javascript' id='wc-add-to-cart-js-extra'> /* <![CDATA[ */ var wc_add_to_cart_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https:\/\/thietkeweb39.com\/cart","is_cart":"","cart_redirect_after_add":"no"}; /* ]]> */ </script> <script type='text/javascript' src='https://thietkeweb39.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js?ver=5.5.1' id='wc-add-to-cart-js'></script> <script type='text/javascript' src='https://thietkeweb39.com/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4' id='js-cookie-js'></script> <script type='text/javascript' id='woocommerce-js-extra'> /* <![CDATA[ */ var woocommerce_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%"}; /* ]]> */ </script> <script type='text/javascript' src='https://thietkeweb39.com/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=5.5.1' id='woocommerce-js'></script> <script type='text/javascript' id='wc-cart-fragments-js-extra'> /* <![CDATA[ */ var wc_cart_fragments_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","cart_hash_key":"wc_cart_hash_71d008cea8e4901b58d8f9cb4a7bf70d","fragment_name":"wc_fragments_71d008cea8e4901b58d8f9cb4a7bf70d","request_timeout":"5000"}; /* ]]> */ </script> <script type='text/javascript' src='https://thietkeweb39.com/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js?ver=5.5.1' id='wc-cart-fragments-js'></script> <script type='text/javascript' src='https://thietkeweb39.com/wp-content/themes/flatsome/inc/extensions/flatsome-live-search/flatsome-live-search.js?ver=3.13.1' id='flatsome-live-search-js'></script> <script type='text/javascript' src='https://thietkeweb39.com/wp-includes/js/hoverIntent.min.js?ver=1.8.1' id='hoverIntent-js'></script> <script type='text/javascript' id='flatsome-js-js-extra'> /* <![CDATA[ */ var flatsomeVars = {"ajaxurl":"https:\/\/thietkeweb39.com\/wp-admin\/admin-ajax.php","rtl":"","sticky_height":"70","lightbox":{"close_markup":"<button title=\"%title%\" type=\"button\" class=\"mfp-close\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-x\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line><\/svg><\/button>","close_btn_inside":false},"user":{"can_edit_pages":false},"i18n":{"mainMenu":"Main Menu"},"options":{"cookie_notice_version":"1"}}; /* ]]> */ </script> <script type='text/javascript' src='https://thietkeweb39.com/wp-content/themes/flatsome/assets/js/flatsome.js?ver=3.13.1' id='flatsome-js-js'></script> <script type='text/javascript' src='https://thietkeweb39.com/wp-content/themes/flatsome/assets/js/woocommerce.js?ver=3.13.1' id='flatsome-theme-woocommerce-js-js'></script> <script type='text/javascript' src='https://thietkeweb39.com/wp-includes/js/comment-reply.min.js?ver=5.8' id='comment-reply-js'></script> <script type='text/javascript' src='https://thietkeweb39.com/wp-includes/js/wp-embed.min.js?ver=5.8' id='wp-embed-js'></script> </body> </html>