Hướng dẫn phát triển chủ đề WordPress


Học cách tạo chủ đề WordPress mở ra một thế giới hoàn toàn mới để bạn khám phá. Nó cho phép bạn xây dựng các thiết kế tùy chỉnh cho chính mình, khách hàng của bạn và thậm chí đóng góp lại cho cộng đồng nguồn mở.

Trong hướng dẫn này, chúng tôi sẽ đưa bạn từ số không để có một chủ đề đầy đủ chức năng có thể được gửi tới WordPress.org thư mục chủ đề.

Để làm theo, bạn sẽ cần một sự hiểu biết cơ bản về HTML, CSS, PHP và cách thức hoạt động của WordPress.

Tất cả các mã được sử dụng trong hướng dẫn này sẽ có sẵn để tham khảo trong này Kho lưu trữ Github.

Tạo tập tin cần thiết


Một chủ đề WordPress hoạt động có thể chỉ bao gồm hai tệp: style.cssindex.php. Điều này là có thể bởi vì WordPress phân cấp mẫu.

Khi WordPress xuất ra một trang web, nó sẽ tìm kiếm một mẫu cụ thể nhất hiện có, nếu một mẫu không tồn tại thì nó sẽ chuyển xuống cấu trúc phân cấp cho đến khi tìm thấy một mẫu. Đây là một ví dụ thực tế:

Người dùng đang bật https://example.com/prreal-example, đó là một trang. WordPress sẽ cố gắng định vị một mẫu theo thứ tự này:

  • trang- {sên} .php – Sên trang là / ví dụ thực tế, WordPress sẽ xem xét sử dụng your-theme / page-Realistic-example.php
  • trang- {id} .php – ID trang là 42, WordPress sẽ sử dụng your-theme / page-42.php.
  • trang.php – WordPress sẽ thử mẫu chung your-theme / page.php.
  • số ít – Mẫu số ít có thể hiển thị Bài đăng và Trang, do đó, nó đã thử sau trang.php cụ thể hơn
  • index.php – Cuối cùng, your-theme / index.php được sử dụng nếu không tìm thấy mẫu nào khác.

Hãy bắt đầu bằng cách xây dựng một chủ đề chỉ với các tệp cần thiết và sau đó chúng tôi có thể tạo lớp trên nhiều tính năng hơn khi chúng tôi khám phá cách chúng hoạt động.

Trong / wp-content / chủ đề /, tạo một thư mục có tên chủ đề của tôi và tạo hai tệp sau:

style.css

Để WordPress nhận ra chủ đề của chúng tôi và xuất nó đúng cách trong danh sách Giao diện → Chủ đề, chúng tôi cần đặt một số mã dành riêng cho WordPress ở đầu style.css, nó trông như thế này:

/ *
Tên chủ đề: Chủ đề tùy chỉnh của tôi
URI chủ đề: https://yourwebsite.com/theme
Tác giả: Tên của bạn
URI tác giả: https://yourwebsite.com
Mô tả: Đây là chủ đề tùy chỉnh đầu tiên của tôi!
Phiên bản: 1.0.0
Giấy phép: Giấy phép Công cộng GNU v2 trở lên
Giấy phép URI: 
Miền văn bản: my-custom-theme
Tags: nền tùy chỉnh
* /

Về mặt kỹ thuật không có trường nào được yêu cầu, nhưng nếu bạn muốn chủ đề của mình trông đẹp trong wp-admin thì chúng rất được khuyến khích. Chúng cũng được yêu cầu nếu bạn đang phân phối chủ đề của mình trên WordPress.

  • Tên chủ đề – Bạn nên luôn luôn cung cấp một tên chủ đề. Nếu bạn không có tên thì tên thư mục sẽ được sử dụng, chủ đề tùy chỉnh của tôi trong ví dụ của chúng tôi.
  • URI chủ đề – Nếu được sử dụng, URI chủ đề sẽ cung cấp liên kết đến một trang nơi khách truy cập có thể tìm hiểu thêm về chủ đề.
  • Tác giả – Tên của bạn ở đây.
  • URI tác giả – Một liên kết đến trang web cá nhân hoặc doanh nghiệp của bạn có thể được đặt ở đây.
  • Sự miêu tả – Mô tả được hiển thị trên phương thức chủ đề wp-admin và cả trên Chủ đề WordPress danh sách.
  • Phiên bản – Số phiên bản giúp nhà phát triển theo dõi các thay đổi và cho người dùng biết nếu họ đang sử dụng phiên bản mới nhất. Chúng tôi theo SemVer hệ thống đánh số để biểu thị mức độ nghiêm trọng của các thay đổi trong bản cập nhật.
  • Giấy phép – Cách bạn cấp phép cho chủ đề của bạn tùy thuộc vào bạn, nhưng nếu bạn chọn một giấy phép không tương thích với GPL thì bạn đã thắng được có thể phân phối chủ đề của bạn trên WordPress.
  • Giấy phép URI – Đây chỉ đơn giản là một liên kết đến giấy phép được liệt kê ở trên.
  • Miền văn bản – Miền văn bản được sử dụng khi dịch chủ đề của bạn sang các ngôn ngữ khác. Chúng tôi sẽ lo lắng về vấn đề này. Cho đến giờ, nó đủ để biết rằng đó là một cách thực hành tốt cho thư mục chủ đề và miền văn bản là tên chủ đề được phân tách bằng dấu gạch nối thay vì dấu cách.
  • Thẻ – Thẻ chỉ được sử dụng nếu bạn đang tải chủ đề của mình lên thư mục chủ đề WordPress.org. Chúng là cơ sở của cơ chế Filter Bộ lọc tính năng.

Sao chép và dán ở trên vào style.css và bạn sẽ có một cái gì đó như thế này:thông tin chủ đề wp-admin

Ghi chú: Có vẻ hơi trống lúc này vì chúng tôi không có ảnh chụp màn hình. Chúng tôi sẽ thêm vào sau.

index.php

index.php là tập tin yêu cầu nghiêm ngặt khác. Công việc của nó là hiển thị tất cả đầu ra front-end cho chủ đề của chúng tôi.

Từ index.php sẽ hiển thị tất cả các trang của chúng tôi (nhà, bài đăng, danh mục, tài liệu lưu trữ) mà nó sẽ làm rất nhiều việc. Để bắt đầu, chúng tôi cần một phần đầu sẽ bao gồm các khái niệm cơ bản về HTML.


>





Đây là HTML chuẩn với một ngoại lệ, [wp_head ()] (). wp_head là một chức năng cốt lõi cho phép các plugin của WordPress và bên thứ ba chèn mã vào tiêu đề mà không sửa đổi các tệp mẫu của bạn. Đây được gọi là một hook hành động.

Nếu bạn quen thuộc với HTML, bạn có thể nhận thấy rằng đó là một thẻ để xuất tiêu đề trang. Điều đó vì WordPress có thể sử dụng hook wp_head để tự động chèn tiêu đề.</p><p>Một cách sử dụng khác của wp_head là để enqueue style (.css) và scripts (.js). Có những lý do rất tốt để làm điều này thay vì mã hóa chúng, mà chúng ta sẽ xem xét sau này.</p><p>Tiếp theo, chúng ta có phần thân của trang:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><body data-rsssl=1 <?php body_class(); ?>></pre><p><em>body_group ()</em> là một hàm trợ giúp được cung cấp bởi WordPress, nó sẽ đưa ra một danh sách các lớp CSS hữu ích mô tả trang đang được hiển thị, chẳng hạn như:</p><pre class="EnlighterJSRAW" data-enlighter-language="html"><code class="EnlighterJSRAW" data-enlighter-language="html">class = "page page-id-2 page-Parent page-template-default-login-in" </code></pre><p><em>body_group ()</em>; cũng chấp nhận một tham số để bạn có thể thêm các lớp của riêng mình, ví dụ:</p><pre class="EnlighterJSRAW" data-enlighter-language="html"><body data-rsssl=1 <?php body_class( 'wide-template blue-bg' ); ?>></pre><p>Tiếp theo, chúng tôi có tiêu đề mẫu.</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><header class="site-header"> <p class="site-title"> <a href="<?php echo esc_url( home_url( '/' ) ); ?" data-wpel-link="internal">"> <?php bloginfo( 'name' ); ?> </a> </p> <p class="site-description"><?php bloginfo( 'description' ); ?></p> </header> </pre><p>Ở đây chúng tôi đang sử dụng các hàm mẫu có sẵn trong WordPress để xuất ra Tiêu đề và Mô tả Trang web. Chúng tôi cũng sử dụng chức năng trợ giúp, <em>home_url (),</em> để liên kết Tiêu đề Trang web trở lại trang chủ.</p><p>Tiếp theo, phần thân của trang:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><div class="site-content"> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <article <?php post_class(); ?>> <header class="entry-header"> <?php the_title( '<h1 class="entry-title"><span id="i">','</span></h1>'); ?> </header> <div class="entry-content"> <?php the_content( esc_html__( 'Continue reading →', 'my-custom-theme' ) ); ?> </div> </article> <?php // If comments are open or we have at least one comment, load up the comment template. if ( comments_open() || get_comments_number() ) : comments_template(); endif; endwhile; else : ?> <article class="no-results"> <header class="entry-header"> <h1 class="page-title"><?php esc_html_e( 'Nothing Found', 'my-custom-theme' ); ?></h1> </header> <div class="entry-content"> <p><?php esc_html_e( 'It looks like nothing was found at this location.', 'my-custom-theme' ); ?></p> </div> </article> <?php endif; ?> </div> </pre><p>Đây là nơi nó trở nên thú vị (và phức tạp hơn một chút). Ở đây chúng tôi đang sử dụng tính năng quan trọng nhất của WordPress, <a href="https://developer.wordpress.org/themes/basics/the-loop/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Vòng</a>. Vòng lặp thực hiện công việc khó khăn để tìm ra người dùng đang ở trang nào và trang nào sẽ được hiển thị. Sau đó, nó sẽ trả về một danh sách một hoặc nhiều ‘bài viết mà chúng ta có thể lặp qua và xuất dữ liệu bằng các hàm mẫu.</p><p>Nếu Loop doesn không trả về bất kỳ kết quả nào, ví dụ như trên trang 404 hoặc bài đăng đã bị xóa, chúng tôi sử dụng một toán tử khác để hiển thị một thông báo được xác định trước.</p><p>Không có bất kỳ mã xung quanh nào, một vòng lặp đơn giản hóa trông như thế này:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">if (have_posts ()): // kiểm tra xem vòng lặp có trả về bất kỳ bài đăng nào không. while (have_posts ()): // lặp qua mỗi bài đăng được trả lại. bài(); // thiết lập nội dung để chúng tôi có thể sử dụng các thẻ mẫu như the_title (). tiêu đề(); // xuất tiêu đề bài viết. Nội dung(); // xuất nội dung bài viết. cuối cùng; khác: tiếng vang 'Không tìm thấy trang'; // xuất thông báo lỗi nếu không có bài viết. endif; ?> </pre><p><strong>Ghi chú:</strong> Bởi vì WordPress có nguồn gốc từ việc viết blog, rất nhiều chức năng sử dụng thuật ngữ ‘post, mặc dù chúng có thể trả về và xuất bất kỳ loại nội dung nào (bài đăng, trang, loại bài đăng tùy chỉnh).</p><p>Cuối cùng, chúng tôi có phần chân trang, tất cả những gì chúng tôi cần làm ở đây là đóng các thẻ HTML mà chúng tôi đã mở trước đó. Có một cái móc hành động khác, <a href="https://developer.wordpress.org/reference/hooks/wp_footer/" rel="nofollow noopener external noreferrer" target="_blank" data-wpel-link="external">wp_footer ()</a>, được WordPress và các plugin tích cực sử dụng để đưa các tập lệnh vào chân trang cần thiết để hiển thị trang.</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><?php wp_footer(); ?> <script src="https://congressmatters.com/wp-content/cache/min/1/1f50acad1c200e893247bec905d87f05.js" data-minify="1" defer></script></body> </html> </pre><p>Nếu bạn đã theo dõi cho đến nay, bạn sẽ có một chủ đề WordPress đầy đủ chức năng trông như thế này:</p><p><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20750%20242'%3E%3C/svg%3E" decoding="async" data-lazy="1" class="shadow-2 aligncenter wp-image-17326 size-large" data-tf-src="/images/wordpress-theme-development-101-3.jpg" alt="xem trước chủ đề bắt đầu" width="750" height="242" data-lazy-src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"/><noscript><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-lazy="1" class="shadow-2 aligncenter wp-image-17326 size-large" data-tf-src="/images/wordpress-theme-development-101-3.jpg" alt="xem trước chủ đề bắt đầu" width="750" height="242"/></noscript><noscript><img class="shadow-2 aligncenter wp-image-17326 size-large" data-tf-not-load src="/images/wordpress-theme-development-101-3.jpg" alt="xem trước chủ đề bắt đầu" width="750" height="242"/></noscript></p><p>Chủ đề của chúng tôi sẽ không giành được bất kỳ giải thưởng thiết kế nào (nó không có CSS) và nó thiếu rất nhiều tính năng mà người dùng cho là thiết yếu (sidebars, điều hướng, siêu dữ liệu, hình thu nhỏ, phân trang, v.v.) nhưng nó khởi đầu tuyệt vời!</p><p>Hãy tiếp tục và tiếp tục xem chúng ta có thể cải thiện nó như thế nào.</p><h2><span id="Hamphp">Hàm.php</span></h2><hr/><p><em>Hàm.php</em> không hoàn toàn là một tập tin bắt buộc, nhưng nó cung cấp rất nhiều lợi ích mà 99,99% chủ đề có nó. Trong <em>Hàm.php</em> bạn có thể sử dụng chức năng chủ đề tích hợp sẵn của WordPress và cũng có thể thêm mã PHP tùy chỉnh của riêng bạn.</p><p>Tạo một <em>Hàm.php</em> trong thư mục chủ đề của bạn bây giờ vì chúng tôi sẽ thêm mã vào nó trong các phần tiếp theo.</p><h3><span id="Them_mot_Menu_dieu_huong">Thêm một Menu điều hướng</span></h3><p>Hầu hết, nếu không phải tất cả các trang web đều sử dụng menu điều hướng, nhưng đến nay chủ đề của chúng tôi không hỗ trợ một. Để nói với WordPress chủ đề của chúng tôi có một menu điều hướng, chúng tôi phải đăng ký nó trong <em>Hàm.php</em> như thế này:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">register_nav_menus (mảng ( 'menu-1' => __ ('Menu chính', 'my-custom-theme'), ); </pre><p><strong>Ghi chú:</strong> <em>register_nav_menus ()</em> chấp nhận một mảng để bạn có thể đăng ký nhiều hơn một menu nếu cần.</p><p>WordPress bây giờ biết về menu của chúng tôi, nhưng chúng tôi vẫn cần xuất nó trong chủ đề của chúng tôi. Chúng tôi làm điều đó bằng cách thêm mã sau bên dưới mô tả trang web trong <em>index.php</em>:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">wp_nav_menu (mảng ( 'theme_location' => 'menu-1', )); </pre><p>Bây giờ chúng ta có một menu điều hướng (chưa được chỉnh sửa):</p><p><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20750%20272'%3E%3C/svg%3E" decoding="async" data-lazy="1" class="shadow-2 aligncenter wp-image-17328 size-large" data-tf-src="/images/wordpress-theme-development-101-4.jpg" alt="chủ đề bắt đầu với menu nav" width="750" height="272" data-lazy-src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"/><noscript><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-lazy="1" class="shadow-2 aligncenter wp-image-17328 size-large" data-tf-src="/images/wordpress-theme-development-101-4.jpg" alt="chủ đề bắt đầu với menu nav" width="750" height="272"/></noscript><noscript><img class="shadow-2 aligncenter wp-image-17328 size-large" data-tf-not-load src="/images/wordpress-theme-development-101-4.jpg" alt="chủ đề bắt đầu với menu nav" width="750" height="272"/></noscript></p><h3><span id="Them_mot_thanh_ben">Thêm một thanh bên</span></h3><p>Chủ đề của chúng tôi không có một thanh bên (khu vực phụ tùng), hãy để ngay bây giờ.</p><p>Đầu tiên, chúng ta cần đăng ký thanh bên trong <em>Hàm.php</em>:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">chức năng my_custom_theme_sidebar () { register_sidebar (mảng ( 'name' => __ ('Thanh bên chính', 'my-custom-theme'), 'id' => 'thanh bên-1', )); } add_action ('widget_init', 'my_custom_theme_sidebar'); </pre><p>Bây giờ tạo <em>sidebar.php</em> trong thư mục chủ đề của bạn và thêm mã sau đây:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><?php if ( is_active_sidebar( 'sidebar-1' ) ) { ?> <ul class="sidebar"> <?php dynamic_sidebar('sidebar-1' ); ?> </ul> <?php } ?> </pre><p>Ở đây chúng tôi đang sử dụng một <em>nếu</em> câu lệnh để kiểm tra xem thanh bên có ‘hoạt động hay không trước khi chúng ta xuất mã. Một thanh bên hoạt động là một thanh mà người dùng đã thêm ít nhất một tiện ích vào.</p><p>Bước cuối cùng là đưa thanh bên vào<em> index.php</em>, ở trên <em>wp_footer ()</em> thêm một <em>get_sidebar ()</em> gọi.</p><h3><span id="Them_hinh_anh_noi_bat">Thêm hình ảnh nổi bật</span></h3><p>Giống như sidebars và menu điều hướng, chúng ta có thể chỉ cần xuất hình ảnh nổi bật trong chủ đề của mình và mong chúng hoạt động, chúng ta phải nói với WordPress rằng chúng ta hỗ trợ tính năng đó trước tiên. Trong <em>Hàm.php</em> thêm vào:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">add_theme_support ('hình thu nhỏ');</pre><p>Bây giờ chúng ta có thể thêm<em>_post_thumbnail ();</em> trong vòng lặp của chúng tôi và các hình thu nhỏ sẽ hoạt động. Vấn đề duy nhất là chúng sẽ xuất ra ở WordPress, kích thước tối đa 1920px x 2560px, quá lớn đối với hầu hết các mục đích sử dụng. May mắn thay, WordPress có một chức năng trợ giúp khác: <em>add_image_size ()</em>;</p><p>Khi người dùng tải lên một hình ảnh và nếu kích thước hình ảnh được xác định, WordPress sẽ tạo một phiên bản của hình ảnh được tải lên ở kích thước đó (trong khi vẫn giữ nguyên bản gốc). Nếu người dùng hình ảnh của người dùng nhỏ hơn kích thước mà bạn đã cài đặt thì WordPress sẽ không làm gì cả vì nó có thể làm cho hình ảnh lớn hơn bản gốc.</p><p>Để sử dụng hình ảnh tính năng được tối ưu hóa thay vì ảnh gốc, hãy đặt đoạn mã sau vào <em>Hàm.php</em>:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">add_image_size ('my-custom-image-size', 640, 999);</pre><p>Tham số đầu tiên là tay cầm, thứ hai là chiều rộng hình ảnh và thứ ba là chiều cao. Cả chiều cao và chiều rộng đều là tùy chọn trong trường hợp bạn chỉ muốn giới hạn một chiều.</p><p>Trong <em>index.php</em>:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">the_post_thumbnail ('my-custom-image-size');</pre><h3><span id="Phong_cach_va_kich_ban_hap_dan">Phong cách và kịch bản hấp dẫn</span></h3><p>Trước đó, chúng tôi đã tuyên bố rằng nó tốt hơn để liệt kê các kiểu và tập lệnh thay vì mã hóa chúng trực tiếp vào các tệp mẫu. Điều đó bởi vì sự mê hoặc cho phép linh hoạt hơn rất nhiều.</p><p>Khi được thực hiện chính xác, mê hoặc cũng cho WordPress biết tài nguyên nào đang được tải. Khi WordPress biết tài nguyên nào là cần thiết, nó có thể đảm bảo cùng một tài nguyên được tải nhiều lần. Điều này đặc biệt quan trọng khi bạn có một thư viện cực kỳ phổ biến như jQuery hoặc FontAwgie mà nhiều chủ đề và plugin sẽ được sử dụng.</p><p>Một lợi ích khác của việc ghi danh là một tài nguyên được liệt kê có thể được bổ sung bằng một plugin, tránh việc phải sửa đổi các tệp mẫu.</p><p>Mặc dù chủ đề của chúng tôi có một <em>style.css</em> hãy tập tin vào nó bằng cách sử dụng nó, hãy để enqueue ngay bây giờ:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">hàm my_custom_theme_enqueue () { wp_enqueue_style ('my-custom-theme', get_stylesheet_uri ()); } add_action ('wp_enqueue_scripts', 'my_custom_theme_enqueue'); </pre><p><a href="https://developer.wordpress.org/reference/functions/get_stylesheet_uri/" rel="nofollow noopener external noreferrer" target="_blank" data-wpel-link="external"><code>get_stylesheet_uri ()</code></a> là một hàm trợ giúp truy xuất URI của biểu định kiểu chủ đề hiện tại. Nếu chúng ta đang tranh thủ bất kỳ tập tin nào khác, chúng ta sẽ cần phải làm điều này thay vào đó:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">wp_enqueue_style ('my-styleheet', get_template_directory_uri (). '/css/style.css'); </pre><p>Chủ đề của chúng tôi không có bất kỳ kịch bản nào, nếu có, chúng tôi sẽ tranh thủ chúng như thế này:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">hàm my_custom_theme_enqueue () { wp_enqueue_style ('my-custom-theme', get_stylesheet_uri ()); wp_enqueue_script ('my-scripts', get_template_directory_uri (). '/js/scripts.js'); } add_action ('wp_enqueue_scripts', 'my_custom_theme_enqueue');</pre><p>Một ngoại lệ ở trên là các tập lệnh đã được <a href="https://developer.wordpress.org/reference/functions/wp_enqueue_script/#default-scripts-and-js-libraries-included-and-registered-by-wordpress" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">đăng ký trước </a>bởi WordPress, trong những trường hợp đó, bạn chỉ cần cung cấp tham số đầu tiên ($ handle):</p><p><code class="EnlighterJSRAW" data-enlighter-language="php">wp_enqueue_script ('jquery');</code></p><p><strong>Thêm phong cách với CSS</strong></p><p data-enlighter-language="php">Chủ đề của chúng tôi có nền tảng vững chắc nhưng thiếu bất kỳ thiết kế nào, thêm một số CSS cơ bản vào style.css sẽ tạo ra sự khác biệt lớn. Chúng tôi đã thêm vào <a href="https://github.com/DannyCooper/my-custom-theme/blob/master/style.css" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">~ 100 dòng CSS </a>đến chủ đề mẫu của chúng tôi như là một minh chứng và kết quả trông như thế này:</p><p data-enlighter-language="php"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20750%20430'%3E%3C/svg%3E" decoding="async" data-lazy="1" class="shadow-2 aligncenter wp-image-17329 size-large" data-tf-src="/images/wordpress-theme-development-101-5.jpg" alt="chủ đề bắt đầu với css" width="750" height="430" data-lazy-src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"/><noscript><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-lazy="1" class="shadow-2 aligncenter wp-image-17329 size-large" data-tf-src="/images/wordpress-theme-development-101-5.jpg" alt="chủ đề bắt đầu với css" width="750" height="430"/></noscript><noscript><img class="shadow-2 aligncenter wp-image-17329 size-large" data-tf-not-load src="/images/wordpress-theme-development-101-5.jpg" alt="chủ đề bắt đầu với css" width="750" height="430"/></noscript></p><h3><span id="The_tieu_de">Thẻ tiêu đề</span></h3><p>Tất cả các chủ đề nên sử dụng chức năng tích hợp sẵn WordPress WordPress để tạo thẻ tiêu đề, được kích hoạt bằng cách thêm mã này vào <em>Hàm.php</em> tập tin: <code>add_theme_support ('thẻ tiêu đề');</code> Đó là tất cả những gì có, WordPress sẽ xử lý đầu ra của trang<em><title></em> và nếu các plugin cần thiết có thể sửa đổi đầu ra bằng các bộ lọc. Các plugin SEO thường làm điều này trong một nỗ lực để tối ưu hóa hơn nữa các tiêu đề.</p><h2><span id="Bo_phan_mau">Bộ phận mẫu</span></h2><hr/><p>Hiện tại 80% mã mẫu của chúng tôi đang ở <em>index.php</em>. Trong khi điều này hoạt động, nó sẽ dẫn đến rất nhiều sự lặp lại mã khi chúng ta có các tệp mẫu khác như <em>số ít</em>, <em>tìm kiếm.php</em>, và <em>archive.php</em>. Phần Mẫu giúp phát triển chủ đề dễ dàng hơn bằng cách cho phép chúng tôi sử dụng lại mã trên các mẫu. Vì tiêu đề và chân trang của chúng tôi sẽ giống nhau trên mỗi trang, chúng là một ứng cử viên hoàn hảo để sử dụng các phần mẫu. Đầu tiên, tạo tiêu đề.php và di chuyển mã sau từ <em>index.php</em>:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="profile" href="<http://gmpg.org/xfn/11>"> <?php wp_head(); ?> </head> <header class="site-header"> <p class="site-title"> <a href="<?php echo esc_url( home_url( '/' ) ); ?" data-wpel-link="internal">"> <?php bloginfo( 'name' ); ?> </a> </p> <p class="site-description"><?php bloginfo( 'description' ); ?></p> <?php wp_nav_menu( array( 'theme_location' => 'menu-1', )); ?> </header> </pre><p>Trong <em>index.php</em> thay thế đoạn mã trên bằng:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><?php get_template_part( 'header' ); ?> </pre><p><strong>Ghi chú:</strong> Khi nhận được một phần mẫu, bạn phải bỏ qua <em>.php</em> từ phần xử lý mẫu.</p><p>Tiếp theo, tạo một phần mẫu chân trang bằng cách di chuyển mã này sang<em> chân trang.php</em> và lặp lại quá trình trên:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><?php wp_footer(); ?> <script src="https://congressmatters.com/wp-content/cache/min/1/1f50acad1c200e893247bec905d87f05.js" data-minify="1" defer></script></body> </html> </pre><p>Cuối cùng, chúng tôi cũng sẽ chuyển mã ‘không có kết quả vào một phần mẫu, vì nó có thể được sử dụng trong nhiều mẫu. Tạo nên<em> nội dung-none.php</em> và di chuyển mã này sang tập tin mới.</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><article class="no-results"> <header class="entry-header"> <h1 class="page-title"><?php esc_html_e( 'Nothing Found', 'my-custom-theme' ); ?></h1> </header> <div class="entry-content"> <p><?php esc_html_e( 'It looks like nothing was found at this location.', 'my-custom-theme' ); ?></p> </div> </article> </pre><p>Chỉ mục của bạn sẽ trông như thế này:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><?php get_template_part( 'header' ); ?> <div class="site-content"> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <article <?php post_class(); ?>> <?php the_post_thumbnail(); ?> <header class="entry-header"> <?php the_title( '<h1 class="entry-title"><span id="i-2">','</span></h1>'); ?> </header> <div class="entry-content"> <?php the_content( esc_html__( 'Continue reading →', 'my-custom-theme' ) ); ?> </div> </article> <?php // If comments are open or we have at least one comment, load up the comment template. if ( comments_open() || get_comments_number() ) : comments_template(); endif; endwhile; else : get_template_part( 'content-none' ); endif; ?> </div> <?php get_sidebar(); get_template_part( 'footer' ); </pre><p>Trong khi những điều trên sẽ hoạt động hoàn hảo, có một sự cải thiện nhỏ mà chúng ta có thể thực hiện. WordPress có các chức năng trợ giúp để bao gồm các phần mẫu tiêu đề, chân trang và thanh bên. Vì nó là một cách thực hành tốt nhất để sử dụng chức năng cốt lõi khi có thể, chúng ta nên sử dụng chức năng đó.</p><p>Thay thế <code>get_template_part ('tiêu đề');</code> với <code>get_header ();</code> và <code>get_template_part ('chân trang');</code> với <code>get_footer ();</code></p><h2><span id="Noi_dung">Nội dung</span></h2><hr/><p>Nền tảng chúng tôi đã hoàn thành với các phần mẫu sẽ trả cổ tức khi chúng tôi thêm các tệp mẫu mới vào chủ đề của chúng tôi. Dưới đây chúng tôi liệt kê danh sách phổ biến nhất. Để tránh áp đảo bạn bằng các ví dụ mã, chúng tôi đã liên kết với mã nguồn trên Github.</p><h3><span id="so_it">số ít</span></h3><p>Bài đăng và Trang, khi được hiển thị trên các URL của riêng chúng, được coi là ’Đơn lẻ vì hầu hết thời gian bố cục sẽ giống nhau cho cả hai loại trang này. Nhưng trong trường hợp đó là bạn có thể sử dụng cụ thể hơn <em>trang.php</em> và <em>đơn.php</em> (bài) thay vào đó.</p><p><a href="https://github.com/DannyCooper/my-custom-theme/blob/master/singular.php" rel="nofollow noopener external noreferrer" target="_blank" data-wpel-link="external">Mã ví dụ - singular.php</a></p><h3><span id="archivephp">archive.php</span></h3><p>Các mẫu lưu trữ thường khác với các mẫu số ít theo hai cách: chúng hiển thị các đoạn trích thay vì toàn bộ nội dung và có tiêu đề lưu trữ giải thích nội dung.</p><p>Tham khảo lại hệ thống phân cấp mẫu và bạn sẽ thấy rằng mẫu lưu trữ bao gồm tất cả các loại tài liệu lưu trữ (tác giả, danh mục, thẻ, phân loại, ngày) nếu điều này không hoạt động cho trường hợp sử dụng của bạn, bạn vẫn có thể sử dụng các mẫu cụ thể hơn:</p><ul><li>tác giả.php</li><li>thể loại.php</li><li>tag.php</li><li>phân loại.php</li><li>ngày.php</li></ul><p><a href="https://github.com/DannyCooper/my-custom-theme/blob/master/archive.php" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Mã ví dụ - archive.php</a></p><h3><span id="tim_kiemphp">tìm kiếm.php</span></h3><p>Các trang web WordPress có thể được tìm kiếm bằng cách sử dụng tham số? S = URL, <code>yourwebsite.com?s=test</code>. Các <em>tìm kiếm.php</em> mẫu đưa ra kết quả của những tìm kiếm đó.</p><p><a href="https://github.com/DannyCooper/my-custom-theme/blob/master/search.php" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Mã ví dụ - search.php</a></p><h3><span id="404php">404.php</span></h3><p>Câu lệnh khác mà chúng tôi đã thêm vào trong tệp index.php bắt gặp trang không tìm thấy lỗi của chế độ, nhưng bạn có thể muốn tách chức năng đó thành tệp mẫu của chính nó để có quyền kiểm soát đầu ra nhiều hơn. Đó là trường hợp sử dụng của <em>404.php</em> tệp mẫu.</p><p><a href="https://github.com/DannyCooper/my-custom-theme/blob/master/404.php" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Mã ví dụ - 404.php</a></p><h2><span id="Tap_tin_phu_tro">Tập tin phụ trợ</span></h2><hr/><p>Nếu bạn đang phân phối chủ đề của mình cho công chúng thì các tệp sau đây là bắt buộc. Không có những thứ này, chủ đề của bạn sẽ bị từ chối từ kho và chủ đề thị trường.</p><h3><span id="anh_chup_man_hinhpng">ảnh chụp màn hình.png</span></h3><p>Ảnh chụp màn hình được hiển thị trong danh sách chủ đề wp-admin khi người dùng đang chọn chủ đề mới. Dưới đây là một số thực hành tốt nhất bạn nên làm theo:</p><ul><li>Ảnh chụp màn hình phải là 1200px x 900px</li><li>Ảnh chụp màn hình phải ở định dạng .png hoặc .jpg</li><li>Ảnh chụp màn hình phải là một đại diện chính xác của chủ đề</li><li>Ảnh chụp màn hình nên được tối ưu hóa (sử dụng <a href="http://tinypng.com" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">tinypng.com</a> hoặc tương tự)</li></ul><h3><span id="readmetxt">readme.txt</span></h3><p>WordPress không sử dụng bất kỳ thông tin nào từ <em>readme.txt</em>, nó lấy mọi thứ nó cần từ <em>style.css</em>. Mặt khác, thư mục chủ đề WordPress không lấy thông tin quan trọng từ tệp readme và coi đó là một tệp bắt buộc.</p><p>Hầu hết các nhà phát triển sử dụng <em>readme.txt</em> là vị trí trung tâm để lưu trữ tất cả các thông tin về chủ đề của họ. Một đơn giản <em>readme.txt</em> trông như thế này:</p><pre class="EnlighterJSRAW" data-enlighter-language="css">=== Tên chủ đề === Yêu cầu ít nhất: 5.0 Đã kiểm tra đến: 5.2 Yêu cầu PHP: 5.6 Giấy phép: GPLv2 trở lên Giấy phép URI: <http://www.gnu.org/licenses/gpl-2.0.html> Mô tả ngắn. Không quá 150 ký tự. == Mô tả == Chủ đề desc. == Thay đổi == = 1,0 = * Thêm tùy chọn mới == Tài nguyên == * chuẩn hóa.css <http://necolas.github.io/normalize.css/>, (C) 2012-2016 Nicolas Gallagher và Jonathan Neal, [MIT] (<http://opensource.org/licenses/MIT>) </pre><ul><li><strong>Yêu cầu ít nhất</strong> - Đây là phiên bản tối thiểu của WordPress mà chủ đề của bạn tương thích với.</li><li><strong>Đã thử nghiệm lên đến</strong> - Trường này biểu thị phiên bản WordPress mới nhất mà chủ đề của bạn đã được thử nghiệm với.</li><li><strong>Yêu cầu PHP</strong> - Trường này biểu thị phiên bản tối thiểu của PHP chủ đề của bạn sẽ hoạt động trên.</li><li><strong>Sự miêu tả</strong> - Trường mô tả này hiện không được hiển thị ở bất cứ đâu.</li><li><strong>Thay đổi</strong> - Thay đổi không được sử dụng ở bất cứ đâu, nhưng các nhà phát triển và một số người dùng sẽ tham chiếu tệp này để xem những thay đổi đã được thực hiện.</li><li><strong>Tài nguyên</strong> - Hầu hết các tài nguyên của bên thứ ba yêu cầu một số loại. Phần tài nguyên là một nơi được chấp nhận rộng rãi để đặt chúng. Ngay cả đối với các tài nguyên không có yêu cầu phân bổ rõ ràng, thì đó vẫn là một cách tốt để liệt kê chúng ở đây để người dùng nhận thức được các giấy phép tài nguyên mà họ đang sử dụng.</li></ul><h2><span id="Mau_trang">Mẫu trang</span></h2><hr/><p>Mẫu trang cho phép nhà phát triển tạo các mẫu tùy chỉnh có thể được sử dụng cho từng bài đăng và trang. Ví dụ: hầu hết các chủ đề có bố cục hai cột (nội dung - thanh bên) nhưng trên một số trang, người dùng có thể chỉ muốn tập trung vào nội dung và không hiển thị thanh bên. Đó là nơi mà một mẫu trang có thể giúp.</p><p><strong>Mẫu trang được tạo như thế nào?</strong></p><p>Trong thư mục chủ đề của chúng tôi, hãy tạo một thư mục mới có tên ‘page-samples, và trong thư mục đó, hãy tạo một tệp có tên <em>cột đơn</em>. Để tăng tốc mọi thứ, hãy sao chép tất cả mã từ <em>số ít</em> đến <em>page-samples / single-cột.php</em> và loại bỏ cuộc gọi đến <em>get_sidebar ()</em> vì mẫu này đã thắng nên cần điều đó.</p><p>Bây giờ chúng ta cần thêm một tiêu đề đặc biệt cho WordPress biết đây là một mẫu trang, nó trông như thế này:</p><pre class="EnlighterJSRAW" data-enlighter-language="css">/ * Tên mẫu: Mẫu cột đơn Loại bài đăng mẫu: bài, trang * / </pre><p>Mã này là tự giải thích, chúng tôi chỉ đơn giản là nói cho WordPress tên của mẫu và loại bài đăng nào có thể được sử dụng với.</p><p>Đó là tất cả những gì có, mẫu trang mới của chúng tôi hiện có sẵn trong trình chỉnh sửa trong under Thuộc tính trang.</p><p><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20750%20643'%3E%3C/svg%3E" decoding="async" data-lazy="1" class=" shadow-2 aligncenter wp-image-17345" data-tf-src="/images/wordpress-theme-development-101-6.jpg" alt="mẫu trang thả xuống" width="750" height="643" data-lazy-src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"/><noscript><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-lazy="1" class=" shadow-2 aligncenter wp-image-17345" data-tf-src="/images/wordpress-theme-development-101-6.jpg" alt="mẫu trang thả xuống" width="750" height="643"/></noscript><noscript><img class=" shadow-2 aligncenter wp-image-17345" data-tf-not-load src="/images/wordpress-theme-development-101-6.jpg" alt="mẫu trang thả xuống" width="750" height="643"/></noscript></p><h2><span id="RTLcss">RTL.css</span></h2><hr/><p>Không phải tất cả các ngôn ngữ đọc từ trái sang phải. Ví dụ, tiếng Ả Rập và tiếng Do Thái được đọc từ phải sang trái (RTL). Có một cách đơn giản để làm cho chủ đề của bạn tương thích với các ngôn ngữ RTL.</p><p>Tạo một tệp mới trong thư mục chủ đề của bạn được gọi là <em>rtl.css</em>, sau đó sao chép và dán đoạn mã sau:</p><pre class="EnlighterJSRAW" data-enlighter-language="css">thân hình { hướng: rtl; unicode-pricei: nhúng; } </pre><p>Nếu ngôn ngữ RTL là ngôn ngữ hoạt động trên trang web WordPress, WordPress sẽ tự động tải tệp CSS này.</p><p>Đây là một triển khai rất cơ bản của chức năng RTL để giúp bạn bắt đầu. Nếu bạn quan tâm đến việc tìm hiểu thêm ở đây là hai tài nguyên tuyệt vời:</p><p><a href="https://codex.wordpress.org/Right_to_Left_Language_Support" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Tài liệu hỗ trợ ngôn ngữ từ phải sang trái</a></p><p><a href="https://github.com/WordPress/WordPress/blob/master/wp-content/themes/twentytwelve/rtl.css" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Mã hai mươi hai mươi RTL</a></p><h2><span id="Thuc_hanh_tot_nhat">Thực hành tốt nhất</span></h2><hr/><p>Các thực tiễn tốt nhất đã phát triển theo thời gian để giúp xây dựng và duy trì các chủ đề WordPress dễ dàng hơn. Không chỉ tuân theo các nguyên tắc này sẽ giúp bạn mà chúng còn giúp các nhà phát triển khác dễ dàng hơn khi họ cần làm việc với mã của bạn.</p><h3><span id="1_Su_dung_Chu_de_bat_dau">1) Sử dụng Chủ đề bắt đầu</span></h3><p>Chủ đề bắt đầu cung cấp một cơ sở vững chắc để bạn xây dựng chủ đề của mình. Thông thường chúng rất nhẹ, chứa ít hoặc không có kiểu dáng và không có tùy chọn cấu hình. Theo thời gian, bạn có thể xây dựng chủ đề khởi động của riêng mình mà bạn có thể dựa trên tất cả các dự án của mình, nhưng bây giờ đây là một số tùy chọn phổ biến:</p><ul><li><a href="https://underscores.me/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Dấu gạch dưới</a></li><li><a href="https://wordpress.org/themes/scaffold/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Khung</a></li><li><a href="https://github.com/html5blank/html5blank" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">HTML5 trống</a></li></ul><h3><span id="2_Nhan_biet_cac_tieu_chuan_ma_hoa_WordPress">2) Nhận biết các tiêu chuẩn mã hóa WordPress</span></h3><p>Các tiêu chuẩn mã hóa là một cách định dạng mã của bạn một cách nhất quán trên toàn bộ cơ sở mã. WordPress có các tiêu chuẩn mã hóa cho HTML, CSS, Javascript và PHP. Mặc dù việc sử dụng một tiêu chuẩn mã hóa không ảnh hưởng đến trải nghiệm của người dùng cuối, nhưng nó làm cho mã của bạn dễ đọc hơn rất nhiều. Ngay cả khi bạn không sử dụng tiêu chuẩn mã hóa WordPress, chúng tôi vẫn luôn khuyên bạn nên sử dụng một tiêu chuẩn.</p><ul><li><a href="https://make.wordpress.org/core/handbook/best-practices/coding-standards/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Tiêu chuẩn mã hóa WordPress.org</a></li><li><a href="https://github.com/WordPress/WordPress-Coding-Standards" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">ÁO</a></li><li><a href="https://www.php-fig.org/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Tiêu chuẩn mã hóa PHP</a></li></ul><h3><span id="3_Su_dung_ban_dia_hoa">3) Sử dụng bản địa hóa</span></h3><p>Nhờ sự làm việc chăm chỉ của các tình nguyện viên, WordPress có sẵn hàng trăm ngôn ngữ. Nếu chủ đề của bạn sẽ được phát hành công khai, nó cần được xây dựng theo cách cho phép nó được dịch.</p><p>Bạn hãy lo lắng, nó rất dễ làm. Tất cả những gì chúng ta cần làm là đảm bảo rằng tất cả các chuỗi được truyền qua hàm chức năng bản địa hóa chứ không phải là đầu ra trực tiếp.</p><p>Thay vì điều này:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><?php echo 'Previous Post'; ?></pre><p>Chúng tôi làm điều này thay vào đó:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><?php echo __( 'Previous Post', 'my-custom-theme' ); ?></pre><p><a href="https://developer.wordpress.org/reference/functions/__/" rel="nofollow noopener external noreferrer" target="_blank" data-wpel-link="external">__ ()</a> là một chức năng bản địa hóa chấp nhận một chuỗi và một miền văn bản. Hàm trả về một bản dịch của chuỗi được cung cấp hoặc chuỗi gốc nếu bản dịch không có sẵn.</p><h3><span id="4_Tranh_chuc_nang_Plugin">4) Tránh chức năng Plugin</span></h3><p>Khi người dùng thay đổi chủ đề, chỉ có lớp trình bày sẽ thay đổi. Nội dung và chức năng nên giữ nguyên. Điều này có nghĩa là bất kỳ chức năng nào ảnh hưởng đến cách đóng vai trò của WordPress trong plugin, không phải chủ đề của bạn. Một số ví dụ về chức năng plugin bao gồm:</p><ul><li>Các loại bài tùy chỉnh</li><li>Người xây dựng trang</li><li>Chia sẻ phương tiện truyền thông xã hội</li><li>Tối ưu hóa công cụ tìm kiếm (SEO)</li></ul><p>Mặc dù có vẻ thuận tiện (và có thể là một điểm bán hàng) để bao gồm các kiểm soát SEO trong một chủ đề, nhưng về lâu dài nó thực sự gây tổn hại cho người dùng. Trong tương lai, họ sẽ cần thay đổi chủ đề nhưng có thể vì vì tất cả các cấu hình SEO của họ được liên kết chặt chẽ với chủ đề hiện tại. Ngược lại, nếu các cấu hình được lưu trữ trong một plugin, chúng có thể thay đổi chủ đề mà không phải lo lắng.</p><h3><span id="5_Tien_to_Ngan_ngua_xung_dot">5) Tiền tố (Ngăn ngừa xung đột)</span></h3><p>Để ngăn ngừa xung đột, tất cả các chức năng, lớp và biến toàn cục được tạo bởi chủ đề của bạn nên được thêm tiền tố. Điều này rất quan trọng vì không thể biết được mã nào khác đang chạy trên trang web người dùng của bạn. Tiền tố ngăn ngừa xung đột tên và lỗi nghiêm trọng.</p><p>Tên chủ đề của bạn được phân tách bằng dấu gạch ngang hoặc dấu gạch dưới sẽ hoạt động như một tiền tố hầu hết thời gian. Nếu tên chủ đề rất dài, tên viết tắt có thể hoạt động thay thế.</p><pre class="EnlighterJSRAW" data-enlighter-language="php">Tên chủ đề: Giàn giáo lớp Scaffold_Class {} hàm scaffold_feft () {} $ scaffold_global toàn cầu Tên chủ đề: Tên chủ đề dài của tôi lớp MLTN_Class {} hàm mltn_feft () {} $ mltn_global toàn cầu </pre><h3><span id="6_Su_dung_chuc_nang_cot_loi">6) Sử dụng chức năng cốt lõi</span></h3><p>Khi nó tồn tại, bạn nên luôn luôn sử dụng chức năng cốt lõi thay vì phát minh lại bánh xe. Điều này bao gồm, nhưng không giới hạn ở Sidebars, Menu điều hướng, Hình thu nhỏ bài đăng, Tiêu đề tùy chỉnh và Nền tùy chỉnh. Các tính năng này đã được thử nghiệm bởi hàng triệu người dùng và được tích cực duy trì và cải thiện khi.</p><p>Nếu bạn cần thay đổi chức năng hoặc đầu ra của một chức năng cốt lõi thì có thể sử dụng một trong nhiều móc và bộ lọc mà WordPress cung cấp. Ví dụ <code>wp_nav_menu ()</code> có tham số ‘walker, do đó bạn có thể kiểm soát hoàn toàn đầu ra.</p><h3><span id="7_Thoat_va_ve_sinh_du_lieu">7) Thoát và vệ sinh dữ liệu</span></h3><p>Là một nhà phát triển chủ đề, bạn phải làm quen với việc thoát và vệ sinh dữ liệu để bảo vệ người dùng của bạn khỏi các khai thác tiềm năng.</p><p><strong>Chạy trốn</strong></p><p>Thoát là quá trình kiểm tra dữ liệu an toàn trước khi nó xuất ra và vệ sinh đang kiểm tra dữ liệu trước khi nó được lưu vào cơ sở dữ liệu.</p><p>WordPress có các chức năng trợ giúp mà bạn có thể sử dụng để thoát dữ liệu, do đó, bạn không cần phải tự xây dựng chúng.. <em>esc_html</em> là một ví dụ về chức năng thoát. Đây là những gì một đầu ra không được bao gồm:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><code>echo get_theme_mod ('error_page_title');</code></pre><p>Để thoát đầu ra, chúng tôi làm điều này:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><code>echo esc_html (get_theme_mod ('error_page_title'));</code></pre><p>Một số chức năng thoát khác mà bạn nên biết là <a href="https://developer.wordpress.org/reference/functions/esc_attr/" rel="nofollow noopener external noreferrer" target="_blank" data-wpel-link="external">esc_attr ()</a>, <a href="https://developer.wordpress.org/reference/functions/absint/" rel="nofollow noopener external noreferrer" target="_blank" data-wpel-link="external">vắng mặt ()</a>, <a href="https://developer.wordpress.org/reference/functions/esc_url/" rel="nofollow noopener external noreferrer" target="_blank" data-wpel-link="external">esc_url ()</a>.</p><p>Nó cũng có thể dịch và thoát một chuỗi bằng một hàm duy nhất:</p><pre class="EnlighterJSRAW" data-enlighter-language="php"><code>echo esc_html (__ ('404 Không tìm thấy', 'my-custom-theme'));</code></pre><p>Trở thành:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">echo esc_html __ ('404 Không tìm thấy', 'my-custom-theme'); // hoặc là esc_html_e ('404 Không tìm thấy', 'my-custom-theme'); </pre><p><strong>Tiền boa:</strong> Bất cứ nơi nào trong chủ đề của bạn, nơi bạn có <code>tiếng vang $</code> bạn nên kiểm tra nếu nó cần phải được trốn thoát, nó thường làm.</p><p><strong>Vệ sinh</strong></p><p>Nếu bạn thêm cài đặt vào chủ đề của mình, bạn cần đảm bảo dữ liệu mà người dùng nhập vào các cài đặt đó là an toàn trước khi vào cơ sở dữ liệu. WordPress có một <a href="https://developer.wordpress.org/themes/theme-security/data-sanitization-escaping/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">số lượng chức năng</a> để giúp vệ sinh đầu vào.</p><p>Khi thêm cài đặt vào chủ đề của bạn bằng API Tùy biến, nó có tham số được gọi là<em>vệ sinh_callback</em>Chấp nhận tên của chức năng khử trùng. Bất kỳ đầu vào nào cài đặt sẽ được kiểm tra bởi chức năng bạn cung cấp cho<em>vệ sinh_callback</em>Trước khi vào cơ sở dữ liệu.</p><p>Nó nhấn mạnh tầm quan trọng của việc vệ sinh rằng nếu thậm chí một trong các cài đặt của bạn bị thiếu <em>vệ sinh_callback</em> nó đã thắng được chấp nhận vào thư mục chủ đề WordPress.</p><pre class="EnlighterJSRAW" data-enlighter-language="php">$ wp_customize-> add_setting ( 'my_custom_theme_setting', mảng( 'sanitize_callback' => 'sanitize bản_field' // Một chức năng khử trùng lõi. ) ); </pre><p>Một danh sách chính thức của các chức năng vệ sinh và thoát hiểm có thể được nhìn thấy ở đây: <a href="https://developer.wordpress.org/themes/theme-security/data-sanitization-escaping/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Vệ sinh dữ liệu / Thoát</a></p><h2><span id="Kenh_phan_phoi">Kênh phân phối</span></h2><hr/><p>Chủ đề có thể được phân phối qua các kênh khác nhau tùy thuộc vào kết quả bạn muốn đạt được. Nếu kết quả của bạn chỉ đơn giản là đóng góp cho cộng đồng nguồn mở thì không có cách nào tốt hơn là tải chủ đề của bạn lên thư mục WordPress. Nếu thay vào đó, bạn đang muốn bán chủ đề của mình và kiếm tiền trực tiếp, có nhiều cách để làm điều đó.</p><p>Dưới đây là các trang web hàng đầu để phân phối chủ đề:</p><h3><span id="1_WordPressorg_Noi_tot_nhat_de_tai_xuong_va_nguoi_dung"><strong>1) WordPress.org (Nơi tốt nhất để tải xuống và người dùng)</strong></span></h3><p>Lợi ích chính của việc lưu trữ chủ đề của bạn trên WordPress là bạn có được sự tăng cường khả năng hiển thị từ chủ đề của bạn được nhìn thấy không chỉ trên trang web wordpress.org mà còn trong <em>quản trị viên</em> bảng điều khiển.</p><p>Một lợi ích khác của việc lưu trữ chủ đề của bạn với WordPress là hệ thống cập nhật tích hợp. Nếu bạn cập nhật chủ đề của mình, tất cả người dùng sẽ được thông báo bên trong <em>quản trị viên</em> bảng điều khiển và đưa ra một đường dẫn dễ dàng để cập nhật lên phiên bản mới nhất.</p><p>WordPress.org chỉ chấp nhận các chủ đề miễn phí, nhưng điều đó không có nghĩa là bạn có thể kiếm tiền. Một chủ đề miễn phí có thể là một kênh tuyệt vời để quảng bá chủ đề, plugin hoặc dịch vụ cao cấp của bạn.</p><h3><span id="2_WordPresscom"><strong>2) WordPress.com</strong></span></h3><p>WordPress.com lưu trữ cả chủ đề miễn phí và cao cấp. Tuy nhiên, họ đã mở ra để gửi tác giả mới trong một vài năm nay.</p><h3><span id="3_Chu_de"><strong>3) Chủ đề</strong></span></h3><p><a href="http://themeforest.net/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Chủ đề</a> là thị trường hàng đầu cho các chủ đề cao cấp. Chủ đề bán chạy nhất (Avada) có doanh số vượt quá 5.000.000 đô la.</p><p>Nói chung, những người mua trên Theme Forest mong đợi các chủ đề đa mục đích của tính năng. Tất cả các chủ đề hàng đầu đều có chức năng xây dựng trang và được hỗ trợ bởi các nhóm nhà phát triển. Nó là một thị trường rất khó để đột nhập vào các tác giả mới.</p><h3><span id="4_Thi_truong_sang_tao_va_thi_truong_Mojo"><strong>4) Thị trường sáng tạo và thị trường Mojo</strong></span></h3><p><a href="https://creativemarket.com/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Thị trường sáng tạo</a> Và <a href="https://www.mojomarketplace.com/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Chợ Mojo</a> là những người chơi nhỏ trong thị trường chủ đề cao cấp, đó là lý do tại sao chúng tôi nhóm chúng lại với nhau. Cả hai đều cung cấp dịch vụ giống như ThemeForest nhưng ở quy mô nhỏ hơn.</p><h3><span id="5_Github"><strong>5) Github</strong></span></h3><p><a href="https://github.com" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Github</a> là cách dễ nhất để công khai chủ đề miễn phí của bạn. Không có quy trình xem xét và không có hướng dẫn để làm theo. Tuy nhiên, bạn đã giành được lợi ích từ khả năng hiển thị của wordpress.org và sẽ cần xây dựng cơ chế cập nhật của riêng bạn để người dùng có được các phiên bản mới nhất.</p><h2><span id="De_tat_ca_chung_cung_nhau">Để tất cả chúng cùng nhau</span></h2><hr/><h3><span id="1_Kiem_tra_chu_de_cua_ban"><strong>1) Kiểm tra chủ đề của bạn</strong></span></h3><p><strong>Kiểm tra đơn vị chủ đề</strong></p><p>Các <a href="https://codex.wordpress.org/Theme_Unit_Test" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Kiểm tra đơn vị chủ đề</a> là một tệp nhập nội dung WordPress tiêu chuẩn có chứa nhiều loại nội dung và trường hợp cạnh. Nó dễ dàng tải lên môi trường phát triển của bạn và sẽ làm nổi bật nhiều tình huống mà bạn có thể đã bỏ qua.</p><p><strong>WP_DEBUG</strong></p><p>Là nhà phát triển chủ đề, hãy thử nghiệm chủ đề của bạn với <a href="https://wordpress.org/support/article/debugging-in-wordpress/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">WP_DEBUG</a> kích hoạt là mức tối thiểu bạn nên làm. Chủ đề của bạn sẽ không trả lại lỗi hoặc cảnh báo khi WP_DEBUG được đặt thành đúng.</p><p>Nó cũng rất quan trọng để lặp lại thử nghiệm với các phiên bản PHP khác nhau mà chủ đề của bạn hỗ trợ. Với mỗi bản phát hành PHP chính, có những thay đổi, cảnh báo và khấu hao mới. Nó không phổ biến khi một chủ đề không có lỗi trên PHP5.6 nhưng hiển thị lỗi trên PHP7.</p><p>Để bật WP_DEBUG, hãy thêm đoạn mã sau vào <em>wp-config.php</em>:</p><pre class="EnlighterJSRAW" data-enlighter-language="php">DEFINE ('WP_DEBUG', đúng); </pre><p><strong>Widget quái vật</strong></p><p><a href="https://wordpress.org/plugins/monster-widget/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Widget quái vật</a> là một plugin hữu ích cho phép bạn thêm 13 tiện ích cốt lõi vào thanh bên cùng một lúc. Các widget cốt lõi sử dụng nhiều yếu tố HTML khác nhau để chúng hoàn hảo để kiểm tra chủ đề của bạn.</p><p><strong>Chủ đề Sniffer</strong></p><p>Các <a href="https://wordpress.org/plugins/theme-sniffer/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Chủ đề Sniffer</a> là một plugin được tạo bởi Nhóm đánh giá chủ đề (TRT). Nó bắt được rất nhiều (nhưng không phải tất cả) các lỗi thoát và bản địa hóa. Nó cũng kiểm tra chủ đề của bạn theo các tiêu chuẩn mã hóa WordPress.</p><h3><span id="2_Gui_chu_de_cua_ban_len_WordPressorg"><strong>2) Gửi chủ đề của bạn lên WordPress.org</strong></span></h3><p>Khi bắt đầu hướng dẫn này, chúng tôi đã nói rằng khi bạn đạt đến cuối, bạn sẽ có một chủ đề bạn có thể gửi tới wordpress.org. Hãy nhìn vào quá trình đó.</p><p><strong>Quá trình tải lên</strong></p><p>Quá trình tải lên rất đơn giản. Tạo hoặc đăng nhập vào tài khoản WordPress của bạn và sau đó điều hướng đến trang này - <a href="https://wordpress.org/themes/upload/" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://wordpress.org/theme/upload/</a></p><p>Bạn có thể nén chủ đề của mình và tải nó lên ngay bây giờ, nhưng đây là một số điều bạn có thể muốn biết trước tiên.</p><p><strong>Yêu cầu</strong></p><p>Nhóm đánh giá chủ đề (TRT) có một bộ nghiêm ngặt <a href="https://make.wordpress.org/themes/handbook/review/required/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">yêu cầu</a>. Chủ đề của bạn sẽ không được chấp nhận vào thư mục cho đến khi nó đáp ứng <strong>tất cả</strong> các yêu cầu.</p><p><strong>Xem lại quá trình</strong></p><p>Khi bạn tải lên một chủ đề, có một quy trình xem xét hai giai đoạn, nó phải vượt qua trước khi có thể được chấp nhận vào thư mục.</p><p>Đầu tiên, kiểm tra tự động được thực hiện ngay khi bạn nhấn <em>Tải lên</em>. Đằng sau hậu trường, trình kiểm tra tự động hoạt động theo cách rất giống với plugin Theme Sniffer. Nếu nó tìm thấy bất kỳ lỗi nào, nó sẽ từ chối chủ đề và quá trình tải lên kết thúc ở đó.</p><p>Nếu chủ đề của bạn vượt qua kiểm tra tự động thì nó sẽ tham gia một hàng các chủ đề đang chờ đánh giá của con người. Đánh giá của con người được hoàn thành bởi các tình nguyện viên từ TRT. Số lượng chủ đề trong hàng đợi vượt xa số lượng người đánh giá, điều đó có nghĩa là thường phải mất 2-3 tháng để chủ đề của bạn đến được phía trước hàng đợi.</p><p>Nó bắt buộc rằng chủ đề của bạn không có lỗi và tuân thủ tất cả các yêu cầu theo thời gian nó đạt đến giai đoạn xem xét của con người như thể nó có hơn 3 lỗi đáng kể có thể bị từ chối. Nếu một chủ đề bị từ chối ở giai đoạn đánh giá con người, nó phải tham gia lại hàng đợi ở phía sau, điều đó có nghĩa là phải đợi 2-3 tháng nữa để xem xét lại con người.</p><p>Tài nguyên hữu ích: <a href="https://wptavern.com/the-most-common-wordpress-theme-development-mistakes-and-how-to-fix-them" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">Các lỗi phát triển chủ đề WordPress phổ biến nhất (và cách khắc phục chúng)</a></p><p>Điều đáng chú ý là TRT luôn tìm kiếm <a href="https://make.wordpress.org/themes/handbook/get-involved/become-a-reviewer/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">người đánh giá mới</a>, tình nguyện có thể là một kinh nghiệm học tập tuyệt vời và là một cách để đóng góp cho cộng đồng nguồn mở.</p><h3><span id="3_Danh_sach_chu_de_cua_ban"><strong>3) Danh sách chủ đề của bạn</strong></span></h3><p>Xin chúc mừng, chủ đề của bạn đã được phê duyệt! Bây giờ bạn có danh sách của riêng bạn mà <a href="https://wordpress.org/themes/arke/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">trông như thế này</a>.</p><p>Dưới đây, tổng quan về những gì bạn có thể thấy trên trang này:</p><ul><li><strong>Ảnh chụp màn hình -</strong> Ảnh chụp màn hình là điều đầu tiên người dùng tiềm năng nhìn thấy để làm cho nó hấp dẫn nhất có thể. Nhưng hãy nhớ nó vẫn phải là một đại diện chính xác của chủ đề và không phải là một kết xuất photoshop. Lấy cảm hứng từ <a href="https://wordpress.org/themes/browse/popular/" target="_blank" rel="nofollow noopener noreferrer external" data-wpel-link="external">chủ đề phổ biến nhất</a>.</li><li><strong>Sự miêu tả -</strong> Mô tả được lấy từ <em>style.css</em> là một nơi lý tưởng để mô tả chủ đề của bạn và các tính năng chính của nó. Nó cũng giúp liệt kê các plugin được đề xuất hoặc yêu cầu ở đây. Mô tả không hỗ trợ bất kỳ định dạng nào (in đậm, in nghiêng, siêu liên kết) hoặc thậm chí ngắt dòng.</li><li><strong>Thẻ -</strong> Đây là một đại diện của các thẻ bạn liệt kê trong <em>style.css</em>. Chỉ có <a href="https://api.wordpress.org/themes/info/1.1/?action=feature_list" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">những thẻ này ở đây</a> được cháp nhận.</li><li><strong>Nút xem trước -</strong> Bản xem trước được tạo bởi wordpress.org và là nhà phát triển chủ đề, chúng tôi không kiểm soát đầu ra. Thật không may, vì trình xem trước sử dụng nội dung cơ bản và không có cấu hình, nó thường dẫn đến một bản xem trước kém hoàn hảo.</li><li><strong>Liên kết trang chủ chủ đề</strong> - URL cho <em>Xem trước</em> nút được kéo từ trường ‘Theme URI chủ đề trong style.css của bạn. Có những yêu cầu nghiêm ngặt rằng URL này chỉ phải được sử dụng để hiển thị một trang hiển thị thông tin về chủ đề của bạn.</li><li><strong>Cài đặt hoạt động</strong> - Đây là số lượng trang web tích cực sử dụng chủ đề. Số được làm tròn đến mười, trăm hoặc nghìn gần nhất. Nó không thể lấy một con số chính xác.</li><li><strong>Tải xuống mỗi ngày</strong> - Đây là số lần chủ đề của bạn đã được tải xuống. Một ‘Tải xuống có thể là một bản tải xuống mới hoặc cập nhật chủ đề.</li><li><strong>Nhận xét -</strong> Để người dùng để lại đánh giá, họ phải đăng nhập vào tài khoản wordpress.org. Nói chung, đánh giá rất khó để có được trừ khi bạn yêu cầu người dùng của mình gửi chúng một cách rõ ràng.</li><li><strong>Ủng hộ</strong> - Nền tảng hỗ trợ tích hợp rất tốt để quản lý và giải quyết các vấn đề với chủ đề của bạn. Người dùng phải đăng nhập để tạo một chuỗi hỗ trợ.</li><li><strong>Bản dịch</strong> - Nền tảng dịch thuật là một tài nguyên tuyệt vời. Nếu bạn đã làm theo lời khuyên trong suốt hướng dẫn này để bản địa hóa chủ đề của mình thì người dùng của bạn sẽ có thể dịch nó sang các ngôn ngữ khác và mở rộng cơ sở người dùng tiềm năng của bạn ngoài chỉ những người dùng nói tiếng Anh.</li></ul><h3><span id="4_Cap_nhat_chu_de_cua_ban">4) Cập nhật chủ đề của bạn</span></h3><p>Khi bạn thay đổi chủ đề của mình trong tương lai và cần cập nhật phiên bản được lưu trữ trên WordPress, quá trình này rất đơn giản.</p><p>Đầu tiên cập nhật Phiên bản: Trường và thay đổi trong <em>readme.txt</em>. Sau đó nén tệp và tải lên lại bằng cách sử dụng tương tự <a href="https://wordpress.org/themes/upload/" target="_blank" rel="nofollow noreferrer noopener external" data-wpel-link="external">trang tải lên</a> như trước.</p><p>Hệ thống sẽ nhận ra nó là một bản cập nhật và sẽ tự động phê duyệt nó để nó không yêu cầu đánh giá của con người.</p> <input type="hidden" value="4571"><div class="uab-frontend-wrapper-outer"><div id="uab_rid_3bdc8" class="uab-frontend-inner-layer uab-frontend-wrapper-author-1 " data-timeout="1000"><div id="uab-frontend-wrapper" class="uab-frontend-wrapper uab-template-1"><div class="uab-tab-content"><div class="uab-defaut-tab uab-clearfix"><div class="uab-author-profile-pic"><div class="uap-profile-image"> <img alt='' src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20200%20200'%3E%3C/svg%3E" data-lazy-srcset='https://congressmatters.com/wp-content/plugins/clearfy-pro/assets/images/default-avatar.png 2x' itemprop='image' class='avatar avatar-200 photo' height='200' width='200' data-lazy-src="https://congressmatters.com/wp-content/plugins/clearfy-pro/assets/images/default-avatar.png"/><noscript><img alt='' src='https://congressmatters.com/wp-content/plugins/clearfy-pro/assets/images/default-avatar.png' srcset='https://congressmatters.com/wp-content/plugins/clearfy-pro/assets/images/default-avatar.png 2x' itemprop='image' class='avatar avatar-200 photo' height='200' width='200'/></noscript></div></div><div class="uab-front-content"><div class="uab-display-name"> <a href="https://congressmatters.com/author/admin/" target="_blank" data-wpel-link="internal">Jeffrey Wilson</a> <span class="uab-user-role uab-role-Administrator">Administrator</span></div><div class="uab-short-info"> Sorry! The Author has not filled his profile.</div><div class="uab-short-contact"></div><div class="uab-social-icons"> <span class="uab-contact-label">follow me</span><ul id="uap-social-outlets-fields"></ul></div></div></div></div></div></div></div><div class="flat_pm_end"></div><div class="ajax-content" data-id="87" ></div><div id="themify_builder_content-4571" data-postid="4571" class="themify_builder_content themify_builder_content-4571 themify_builder tf_clear tb_generate_css" style="visibility:hidden;opacity:0;"></div></div></div></div><div class="post-nav clearfix"> <span class="prev"><a href="https://congressmatters.com/cat-diverse/beste-wordpress-temaer-for-fotografering-i-2020/" rel="prev" data-wpel-link="internal">Beste WordPress-temaer for fotografering i 2020</a></span> <span class="next"><a href="https://congressmatters.com/net-kategorii/shpargalka-po-sql/" rel="next" data-wpel-link="internal">Шпаргалка по SQL</a></span></div></main><div id="sidebar" itemscope="itemscope" itemtype="https://schema.org/WPSidebar"><div id="uab_author_box_widget-2" class="widget UAB_Author_Box_Widget"><div class="uab-abw-wrapper template-1"></div></div><div id="search-4" class="widget widget_search"><form method="get" id="searchform" action="https://congressmatters.com/"> <input type="text" name="s" id="s" title="Search" value=""/></form></div><div id="custom_html-4" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><iframe loading="lazy" data-lazy="1" src="about:blank" class="tf_iframe_lazy" width="560" height="315" data-tf-src="https://www.youtube.com/embed/7xrM3d0CoPs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-rocket-lazyload="fitvidscompatible" data-lazy-src=""></iframe><noscript><iframe loading="lazy" data-lazy="1" src="about:blank" class="tf_iframe_lazy" width="560" height="315" data-tf-src="https://www.youtube.com/embed/7xrM3d0CoPs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></noscript></div></div><div id="arpw-widget-2" class="widget arpw-widget-random "><h4 class="widgettitle">Случайные статьи</h4><div class="arpw-random-post "><ul class="arpw-ul arpw-widget-2"><li class="arpw-li arpw-clearfix arpw-1"><a class="arpw-title" href="https://congressmatters.com/page-6/wordpress6-3/" rel="bookmark" data-wpel-link="internal">複数著者のWordPressブログを管理するための6つのヒント</a></li><li class="arpw-li arpw-clearfix arpw-2"><a class="arpw-title" href="https://congressmatters.com/cat-seo/cele-mai-importante-funcii-ale-yoast-seo-pentru/" rel="bookmark" data-wpel-link="internal">Cele mai importante funcții ale Yoast SEO pentru WordPress</a></li><li class="arpw-li arpw-clearfix arpw-3"><a class="arpw-title" href="https://congressmatters.com/nema-kategorie/frontpoint-sigurnosni-pregled/" rel="bookmark" data-wpel-link="internal">ФронтПоинт сигурносни преглед</a></li><li class="arpw-li arpw-clearfix arpw-4"><a class="arpw-title" href="https://congressmatters.com/cat-dicas/como-melhorar-a-estrutura-e-os-links-permanentes/" rel="bookmark" data-wpel-link="internal">Como melhorar a estrutura e os links permanentes do seu site WordPress</a></li><li class="arpw-li arpw-clearfix arpw-5"><a class="arpw-title" href="https://congressmatters.com/page-48/wordpress-267/" rel="bookmark" data-wpel-link="internal">カテゴリとタグを追加する人気のあるWordPressプラグイン</a></li><li class="arpw-li arpw-clearfix arpw-6"><a class="arpw-title" href="https://congressmatters.com/blog/justhost-hosting-cmal/" rel="bookmark" data-wpel-link="internal">Justhost Hosting İcmalı</a></li><li class="arpw-li arpw-clearfix arpw-7"><a class="arpw-title" href="https://congressmatters.com/cat-sfaturi/ghid-de-marcare-final-a-schemei-wordpress/" rel="bookmark" data-wpel-link="internal">Ghid de marcare finală a schemei WordPress</a></li><li class="arpw-li arpw-clearfix arpw-8"><a class="arpw-title" href="https://congressmatters.com/cat-opinie/wp-host-managed-wordpress-hosting-review/" rel="bookmark" data-wpel-link="internal">WP Host Managed WordPress Hosting Review</a></li><li class="arpw-li arpw-clearfix arpw-9"><a class="arpw-title" href="https://congressmatters.com/cat-diverse/30-beste-sosiale-medier-plugins-for-wordpress-i/" rel="bookmark" data-wpel-link="internal">30+ beste sosiale medier-plugins for WordPress i 2020</a></li><li class="arpw-li arpw-clearfix arpw-10"><a class="arpw-title" href="https://congressmatters.com/asnje-kategori/tutorial-html-per-fillestaret/" rel="bookmark" data-wpel-link="internal">Tutorial HTML (për fillestarët)</a></li><li class="arpw-li arpw-clearfix arpw-11"><a class="arpw-title" href="https://congressmatters.com/net-kategorii/atele-kreativnaja-mnogocelevaja-tema-jelektronnoj/" rel="bookmark" data-wpel-link="internal">Ателье – креативная многоцелевая тема электронной коммерции</a></li><li class="arpw-li arpw-clearfix arpw-12"><a class="arpw-title" href="https://congressmatters.com/kateqoriya-yoxdur/one-com-icmal/" rel="bookmark" data-wpel-link="internal">One.com icmalı</a></li><li class="arpw-li arpw-clearfix arpw-13"><a class="arpw-title" href="https://congressmatters.com/cat-porady/jak-automatycznie-udostpnia-posty-wordpress-w/" rel="bookmark" data-wpel-link="internal">Jak automatycznie udostępniać posty WordPress w buforze</a></li><li class="arpw-li arpw-clearfix arpw-14"><a class="arpw-title" href="https://congressmatters.com/veb-hosting-rylri/siteground-xususi-hosting-review-2020-70-endrm-aln/" rel="bookmark" data-wpel-link="internal">SiteGround Xüsusi Hosting Review 2020 [70% ENDİRİM alın]</a></li><li class="arpw-li arpw-clearfix arpw-15"><a class="arpw-title" href="https://congressmatters.com/planet-mimet/zbritja-e-rinovimit-te-siteground-2020-2020/" rel="bookmark" data-wpel-link="internal">Zbritja e Rinovimit të SiteGround 2020 2020 (Pricemimi i rinovimit 70% OFF)</a></li><li class="arpw-li arpw-clearfix arpw-16"><a class="arpw-title" href="https://congressmatters.com/rone/jak-doda-muzyk-do-swojej-witryny-wordpress-za/" rel="bookmark" data-wpel-link="internal">Jak dodać muzykę do swojej witryny WordPress za pomocą wtyczki</a></li><li class="arpw-li arpw-clearfix arpw-17"><a class="arpw-title" href="https://congressmatters.com/cat-dicas/o-que-procurar-ao-empregar-um-escritor-freelancer/" rel="bookmark" data-wpel-link="internal">O que procurar ao empregar um escritor freelancer para o seu blog WordPress</a></li><li class="arpw-li arpw-clearfix arpw-18"><a class="arpw-title" href="https://congressmatters.com/cat-poradniki/dodaj-mapy-katalogow-opartych-na-lokalizacji-do/" rel="bookmark" data-wpel-link="internal">Dodaj mapy katalogów opartych na lokalizacji do WordPress z GeoDirectory</a></li><li class="arpw-li arpw-clearfix arpw-19"><a class="arpw-title" href="https://congressmatters.com/cat-tips/12-fantastiske-wordpress-ressurser-beske-i-dag/" rel="bookmark" data-wpel-link="internal">12 fantastiske WordPress-ressurser å besøke i dag</a></li><li class="arpw-li arpw-clearfix arpw-20"><a class="arpw-title" href="https://congressmatters.com/cat-opinii/slide-deck-2-review-slider-plugin-wordpress/" rel="bookmark" data-wpel-link="internal">Slide Deck 2 Review Slider Plugin WordPress</a></li><li class="arpw-li arpw-clearfix arpw-21"><a class="arpw-title" href="https://congressmatters.com/cat-sfaturi/cum-s-plasai-wordpress-in-modul-de-intreinere-sau/" rel="bookmark" data-wpel-link="internal">Cum să plasați WordPress în modul de întreținere sau să adăugați o pagină în curând</a></li><li class="arpw-li arpw-clearfix arpw-22"><a class="arpw-title" href="https://congressmatters.com/cat-sfaturi/cum-s-construii-un-site-de-afiliere-folosind/" rel="bookmark" data-wpel-link="internal">Cum să construiți un site de afiliere folosind WordPress</a></li><li class="arpw-li arpw-clearfix arpw-23"><a class="arpw-title" href="https://congressmatters.com/blog/25-vjet-e-world-wide-web/" rel="bookmark" data-wpel-link="internal">25 vjet e World Wide Web</a></li><li class="arpw-li arpw-clearfix arpw-24"><a class="arpw-title" href="https://congressmatters.com/cat-tutoriale/creai-un-portal-de-agregare-de-tiri-rss-cu/" rel="bookmark" data-wpel-link="internal">Creați un portal de agregare de știri RSS cu WordPress</a></li><li class="arpw-li arpw-clearfix arpw-25"><a class="arpw-title" href="https://congressmatters.com/rone/najlepsze-motywy-wordpress-dotyczce-fotografii-w/" rel="bookmark" data-wpel-link="internal">Najlepsze motywy WordPress dotyczące fotografii w 2020 r</a></li><li class="arpw-li arpw-clearfix arpw-26"><a class="arpw-title" href="https://congressmatters.com/page-6/wordpress-166/" rel="bookmark" data-wpel-link="internal">WordPressサイトへのトラフィックを増やす方法</a></li><li class="arpw-li arpw-clearfix arpw-27"><a class="arpw-title" href="https://congressmatters.com/cat-sfaturi/cum-s-alegei-cele-mai-bune-programe-de-afiliere/" rel="bookmark" data-wpel-link="internal">Cum să alegeți cele mai bune programe de afiliere pentru promovare pe blogul dvs. WordPress</a></li><li class="arpw-li arpw-clearfix arpw-28"><a class="arpw-title" href="https://congressmatters.com/cat-diverse/beste-podcast-plugins-og-tjenester-for-wordpress/" rel="bookmark" data-wpel-link="internal">Beste podcast-plugins og tjenester for WordPress</a></li><li class="arpw-li arpw-clearfix arpw-29"><a class="arpw-title" href="https://congressmatters.com/asnje-kategori/web-hosting-vs-domain-shpjeguar/" rel="bookmark" data-wpel-link="internal">Web Hosting vs Domain (Shpjeguar)</a></li><li class="arpw-li arpw-clearfix arpw-30"><a class="arpw-title" href="https://congressmatters.com/cat-opinii/o-revizuire-a-cadrului-genesis-pentru-wordpress/" rel="bookmark" data-wpel-link="internal">O revizuire a Cadrului Genesis pentru WordPress</a></li><li class="arpw-li arpw-clearfix arpw-31"><a class="arpw-title" href="https://congressmatters.com/page-6/wordpress-116/" rel="bookmark" data-wpel-link="internal">ブログを成功させるためのWordPressブログのヒント</a></li><li class="arpw-li arpw-clearfix arpw-32"><a class="arpw-title" href="https://congressmatters.com/page-6/page-29/" rel="bookmark" data-wpel-link="internal">サイトのイベント管理プラグインを選択する方法</a></li><li class="arpw-li arpw-clearfix arpw-33"><a class="arpw-title" href="https://congressmatters.com/cat-sfaturi/sfaturi-cheie-pentru-construirea-unui-site-web-de/" rel="bookmark" data-wpel-link="internal">Sfaturi cheie pentru construirea unui site web de afaceri cu WordPress</a></li><li class="arpw-li arpw-clearfix arpw-34"><a class="arpw-title" href="https://congressmatters.com/cat-porady/jak-i-dlaczego-dodawa-infinite-przewi-do-swojego/" rel="bookmark" data-wpel-link="internal">Jak i dlaczego dodawać Infinite Przewiń do swojego bloga WordPress</a></li><li class="arpw-li arpw-clearfix arpw-35"><a class="arpw-title" href="https://congressmatters.com/net-kategorii/tipy-sajtov-primery/" rel="bookmark" data-wpel-link="internal">Типы сайтов (примеры)</a></li><li class="arpw-li arpw-clearfix arpw-36"><a class="arpw-title" href="https://congressmatters.com/cat-tutoriais/crie-um-blog-simples-com-o-tema-wordpress-zero/" rel="bookmark" data-wpel-link="internal">Crie um blog simples com o tema WordPress zero grátis</a></li><li class="arpw-li arpw-clearfix arpw-37"><a class="arpw-title" href="https://congressmatters.com/net-kategorii/obzor-site5/" rel="bookmark" data-wpel-link="internal">Обзор Site5</a></li><li class="arpw-li arpw-clearfix arpw-38"><a class="arpw-title" href="https://congressmatters.com/nyheter-og-fellesskap/er-wordpress-fortsatt-den-beste-kilden-til-gratis/" rel="bookmark" data-wpel-link="internal">Er WordPress fortsatt den beste kilden til gratis WordPress-temaer?</a></li><li class="arpw-li arpw-clearfix arpw-39"><a class="arpw-title" href="https://congressmatters.com/cat-dicas/como-organizar-o-conteudo-no-seu-site-wordpress/" rel="bookmark" data-wpel-link="internal">Como organizar o conteúdo no seu site WordPress</a></li><li class="arpw-li arpw-clearfix arpw-40"><a class="arpw-title" href="https://congressmatters.com/cat-diverse/30-teme-minime-wordpress-2020/" rel="bookmark" data-wpel-link="internal">30+ Teme minime WordPress 2020</a></li><li class="arpw-li arpw-clearfix arpw-41"><a class="arpw-title" href="https://congressmatters.com/cat-diverse/teme-wordpress-recomandate-pentru-freelanceri/" rel="bookmark" data-wpel-link="internal">Teme WordPress recomandate pentru freelanceri</a></li><li class="arpw-li arpw-clearfix arpw-42"><a class="arpw-title" href="https://congressmatters.com/blog/google-app-engine-la-gi-va-bn-co-th-lam-gi-vi-no/" rel="bookmark" data-wpel-link="internal">Google App Engine là gì và bạn có thể làm gì với nó</a></li><li class="arpw-li arpw-clearfix arpw-43"><a class="arpw-title" href="https://congressmatters.com/asnje-kategori/nje-veshtrim-ne-thellesi-te-oksigjenit-woocommerce/" rel="bookmark" data-wpel-link="internal">Një vështrim në thellësi të oksigjenit – WooCommerce Theme WordPress</a></li><li class="arpw-li arpw-clearfix arpw-44"><a class="arpw-title" href="https://congressmatters.com/net-kategorii/bespristrastnyj-mister-tejlor-otzyvchivyj/" rel="bookmark" data-wpel-link="internal">Беспристрастный мистер Тейлор – Отзывчивый WooCommerce Theme Review</a></li><li class="arpw-li arpw-clearfix arpw-45"><a class="arpw-title" href="https://congressmatters.com/page-32/webwordpress-2/" rel="bookmark" data-wpel-link="internal">多くのWebサイトでよくあるWordPressセキュリティの間違い</a></li><li class="arpw-li arpw-clearfix arpw-46"><a class="arpw-title" href="https://congressmatters.com/rone/polecane-motywy-wordpress-dla-freelancerow/" rel="bookmark" data-wpel-link="internal">Polecane motywy WordPress dla freelancerów</a></li><li class="arpw-li arpw-clearfix arpw-47"><a class="arpw-title" href="https://congressmatters.com/net-kategorii/hostclear-obzor/" rel="bookmark" data-wpel-link="internal">HostClear Обзор</a></li><li class="arpw-li arpw-clearfix arpw-48"><a class="arpw-title" href="https://congressmatters.com/cat-dicas/como-escolher-a-melhor-hospedagem-wordpress/" rel="bookmark" data-wpel-link="internal">Como escolher a melhor hospedagem WordPress</a></li><li class="arpw-li arpw-clearfix arpw-49"><a class="arpw-title" href="https://congressmatters.com/page-6/wordpresscdn/" rel="bookmark" data-wpel-link="internal">WordPressサイトにCDNを使用する利点</a></li><li class="arpw-li arpw-clearfix arpw-50"><a class="arpw-title" href="https://congressmatters.com/cat-opinii/recapitulare-qards-un-generator-de-pagini-de-drag/" rel="bookmark" data-wpel-link="internal">Recapitulare Qards: un generator de pagini de drag & drop eficient pentru WordPress</a></li><li class="arpw-li arpw-clearfix arpw-51"><a class="arpw-title" href="https://congressmatters.com/nema-kategorie/da-li-e-inmotion-kompatibilan-sa-macom/" rel="bookmark" data-wpel-link="internal">Да ли је ИнМотион компатибилан са Мацом?</a></li><li class="arpw-li arpw-clearfix arpw-52"><a class="arpw-title" href="https://congressmatters.com/page-39/translatepress-wordpress/" rel="bookmark" data-wpel-link="internal">TranslatePress WordPress翻訳プラグインガイド</a></li><li class="arpw-li arpw-clearfix arpw-53"><a class="arpw-title" href="https://congressmatters.com/page-39/wp-wordpress/" rel="bookmark" data-wpel-link="internal">アフィリエイトWP – WordPress用の最高のアフィリエイトマーケティングプラグイン</a></li><li class="arpw-li arpw-clearfix arpw-54"><a class="arpw-title" href="https://congressmatters.com/wiadomoci-i-spoeczno/55-wielkich-marek-ktore-uywaj-wordpress-i-dlaczego/" rel="bookmark" data-wpel-link="internal">55 wielkich marek, które używają WordPress (i dlaczego)</a></li><li class="arpw-li arpw-clearfix arpw-55"><a class="arpw-title" href="https://congressmatters.com/cat-diverse/10-beste-plugin-moduler-for-wordpress/" rel="bookmark" data-wpel-link="internal">10 beste plugin-moduler for WordPress</a></li><li class="arpw-li arpw-clearfix arpw-56"><a class="arpw-title" href="https://congressmatters.com/page-48/2018wordpress/" rel="bookmark" data-wpel-link="internal">2018年に利用可能な最高のビデオWordPressテーマ</a></li><li class="arpw-li arpw-clearfix arpw-57"><a class="arpw-title" href="https://congressmatters.com/cat-guider/hvordan-bygge-et-kirkelig-nettsted-med-wordpress/" rel="bookmark" data-wpel-link="internal">Hvordan bygge et kirkelig nettsted med WordPress</a></li><li class="arpw-li arpw-clearfix arpw-58"><a class="arpw-title" href="https://congressmatters.com/khong-co-th-loi/hng-dn-whois-t-nhan-ca-bluehost/" rel="bookmark" data-wpel-link="internal">Hướng dẫn WHOIS tư nhân của Bluehost</a></li><li class="arpw-li arpw-clearfix arpw-59"><a class="arpw-title" href="https://congressmatters.com/page-39/wordpress-246/" rel="bookmark" data-wpel-link="internal">フライホイールレビューによるローカル:ローカルのWordPress環境を即座に構築</a></li><li class="arpw-li arpw-clearfix arpw-60"><a class="arpw-title" href="https://congressmatters.com/net-kategorii/uchebnik-html-dlja-nachinajushhih/" rel="bookmark" data-wpel-link="internal">Учебник HTML (для начинающих)</a></li><li class="arpw-li arpw-clearfix arpw-61"><a class="arpw-title" href="https://congressmatters.com/kateqoriya-yoxdur/12-n-yax-wordpress-pluginlr-pulsuz-v-pullu/" rel="bookmark" data-wpel-link="internal">12 “Ən yaxşı” WordPress Pluginlər (Pulsuz və Pullu)</a></li><li class="arpw-li arpw-clearfix arpw-62"><a class="arpw-title" href="https://congressmatters.com/cat-seo/wordpress-seo-guide-frste-trinn/" rel="bookmark" data-wpel-link="internal">WordPress SEO Guide: Første trinn</a></li><li class="arpw-li arpw-clearfix arpw-63"><a class="arpw-title" href="https://congressmatters.com/muqayislr/15-n-yax-pulsuz-logo-istehsalclar-v-generatorlar/" rel="bookmark" data-wpel-link="internal">15 ən yaxşı PULSUZ Logo istehsalçıları və generatorları</a></li><li class="arpw-li arpw-clearfix arpw-64"><a class="arpw-title" href="https://congressmatters.com/cat-tips/hvis-hvorfor-og-hvordan-legge-til-premiuminnhold/" rel="bookmark" data-wpel-link="internal">Hvis, hvorfor og hvordan legge til premiuminnhold til ditt WordPress-nettsted</a></li><li class="arpw-li arpw-clearfix arpw-65"><a class="arpw-title" href="https://congressmatters.com/cat-diversos/15-melhores-temas-wordpress-para-imoveis/" rel="bookmark" data-wpel-link="internal">15+ Melhores Temas WordPress para Imóveis</a></li><li class="arpw-li arpw-clearfix arpw-66"><a class="arpw-title" href="https://congressmatters.com/kateqoriya-yoxdur/bluehost-alq-satqs-2-95-ayna-ekskluziv-endirim/" rel="bookmark" data-wpel-link="internal">Bluehost alqı-satqısı – $ 2.95 / ayına eksklüziv endirim</a></li><li class="arpw-li arpw-clearfix arpw-67"><a class="arpw-title" href="https://congressmatters.com/cat-avaliacoes/a-melhor-revisao-do-gridbuilderwp-grades-e-filtros/" rel="bookmark" data-wpel-link="internal">A melhor revisão do GridBuilderWP: grades e filtros flexíveis</a></li><li class="arpw-li arpw-clearfix arpw-68"><a class="arpw-title" href="https://congressmatters.com/cat-tutoriale/cel-mai-simplu-mod-de-a-v-reseta-site-ul-dvs/" rel="bookmark" data-wpel-link="internal">Cel mai simplu mod de a vă reseta site-ul dvs. WordPress</a></li><li class="arpw-li arpw-clearfix arpw-69"><a class="arpw-title" href="https://congressmatters.com/khong-co-th-loi/hng-dn-html-danh-cho-ngi-mi-bt-u/" rel="bookmark" data-wpel-link="internal">Hướng dẫn HTML (dành cho người mới bắt đầu)</a></li><li class="arpw-li arpw-clearfix arpw-70"><a class="arpw-title" href="https://congressmatters.com/cat-opinii/rabbit-social-automatizai-v-marketingul-pe-reelele/" rel="bookmark" data-wpel-link="internal">Rabbit social: automatizați-vă marketingul pe rețelele de socializare</a></li><li class="arpw-li arpw-clearfix arpw-71"><a class="arpw-title" href="https://congressmatters.com/mhur/a2-hosting-cmal/" rel="bookmark" data-wpel-link="internal">A2 Hosting İcmalı</a></li><li class="arpw-li arpw-clearfix arpw-72"><a class="arpw-title" href="https://congressmatters.com/net-kategorii/obzor-veb-hostinga-pickaweb/" rel="bookmark" data-wpel-link="internal">Обзор веб-хостинга Pickaweb</a></li><li class="arpw-li arpw-clearfix arpw-73"><a class="arpw-title" href="https://congressmatters.com/kateqoriya-yoxdur/pickaweb-veb-hosting-review/" rel="bookmark" data-wpel-link="internal">Pickaweb Veb Hosting Review</a></li><li class="arpw-li arpw-clearfix arpw-74"><a class="arpw-title" href="https://congressmatters.com/cat-sfaturi/8-moduri-de-implicare-in-comunitatea-wordpress/" rel="bookmark" data-wpel-link="internal">8 moduri de implicare în comunitatea WordPress</a></li><li class="arpw-li arpw-clearfix arpw-75"><a class="arpw-title" href="https://congressmatters.com/page/microsoft-azurewordpress/" rel="bookmark" data-wpel-link="internal">Microsoft AzureにWordPressをインストールする方法</a></li><li class="arpw-li arpw-clearfix arpw-76"><a class="arpw-title" href="https://congressmatters.com/nema-kategorie/kako-dodati-pretplatu-na-bilten-putem-e-poshte-na/" rel="bookmark" data-wpel-link="internal">Како додати претплату на билтен путем е-поште на своју веб локацију</a></li><li class="arpw-li arpw-clearfix arpw-77"><a class="arpw-title" href="https://congressmatters.com/page-6/35/" rel="bookmark" data-wpel-link="internal">35+最高の無料ストック写真サイト</a></li><li class="arpw-li arpw-clearfix arpw-78"><a class="arpw-title" href="https://congressmatters.com/nema-kategorie/offshore-hosting-shta-e-to-i-shta-koristi/" rel="bookmark" data-wpel-link="internal">Оффсхоре хостинг – шта је то и шта користи?</a></li><li class="arpw-li arpw-clearfix arpw-79"><a class="arpw-title" href="https://congressmatters.com/cat-opinii/creai-i-implementai-site-uri-client-wordpress-cu/" rel="bookmark" data-wpel-link="internal">Creați și implementați site-uri client WordPress cu DesktopServer</a></li><li class="arpw-li arpw-clearfix arpw-80"><a class="arpw-title" href="https://congressmatters.com/asnje-kategori/paraqitjet-e-faqes-ne-internet/" rel="bookmark" data-wpel-link="internal">Paraqitjet e faqes në internet</a></li><li class="arpw-li arpw-clearfix arpw-81"><a class="arpw-title" href="https://congressmatters.com/cat-tips/forenkle-din-tilstedevrelse-p-nettet-med-wordpress-2/" rel="bookmark" data-wpel-link="internal">Forenkle din tilstedeværelse på nettet med WordPress: Etablere virksomheten</a></li><li class="arpw-li arpw-clearfix arpw-82"><a class="arpw-title" href="https://congressmatters.com/cat-avaliacoes/revisao-da-roda-wp-optin-como-aumentar-suas-taxas/" rel="bookmark" data-wpel-link="internal">Revisão da roda WP Optin: como aumentar suas taxas de inscrição instantaneamente</a></li><li class="arpw-li arpw-clearfix arpw-83"><a class="arpw-title" href="https://congressmatters.com/cat-porady/kiedy-i-jak-zleci-na-zewntrz-zadania-biznesowe/" rel="bookmark" data-wpel-link="internal">Kiedy i jak zlecić na zewnątrz zadania biznesowe bloga WordPress</a></li><li class="arpw-li arpw-clearfix arpw-84"><a class="arpw-title" href="https://congressmatters.com/cat-sfaturi/nou-pentru-wordpress-evitai-aceste-10-greeli/" rel="bookmark" data-wpel-link="internal">Nou pentru WordPress? Evitați aceste 10 greșeli nebunești</a></li><li class="arpw-li arpw-clearfix arpw-85"><a class="arpw-title" href="https://congressmatters.com/cat-anmeldelser/publiser-automatisk-wordpress-innlegg-til-dine/" rel="bookmark" data-wpel-link="internal">Publiser automatisk WordPress-innlegg til dine sosiale nettverk med SNAP</a></li><li class="arpw-li arpw-clearfix arpw-86"><a class="arpw-title" href="https://congressmatters.com/cat-guider/hvorfor-og-hvordan-starte-en-blogg-etter/" rel="bookmark" data-wpel-link="internal">Hvorfor og hvordan starte en blogg etter pensjonering med WordPress</a></li><li class="arpw-li arpw-clearfix arpw-87"><a class="arpw-title" href="https://congressmatters.com/cat-seo/guia-de-instalacao-e-configuracao-do-yoast-seo/" rel="bookmark" data-wpel-link="internal">Guia de instalação e configuração do Yoast SEO para WordPress</a></li><li class="arpw-li arpw-clearfix arpw-88"><a class="arpw-title" href="https://congressmatters.com/cat-tips/13-mter-du-taper-penger-uten-jetpack-for-wordpress/" rel="bookmark" data-wpel-link="internal">13+ måter du taper penger uten Jetpack for WordPress</a></li><li class="arpw-li arpw-clearfix arpw-89"><a class="arpw-title" href="https://congressmatters.com/bax-icmal/chemicloud-xulassi/" rel="bookmark" data-wpel-link="internal">ChemiCloud xülasəsi</a></li><li class="arpw-li arpw-clearfix arpw-90"><a class="arpw-title" href="https://congressmatters.com/kateqoriya-yoxdur/justhost-xulassi/" rel="bookmark" data-wpel-link="internal">Justhost xülasəsi</a></li><li class="arpw-li arpw-clearfix arpw-91"><a class="arpw-title" href="https://congressmatters.com/asnje-kategori/rishikimi-i-sigurise-se-frontpoint/" rel="bookmark" data-wpel-link="internal">Rishikimi i Sigurisë së FrontPoint</a></li><li class="arpw-li arpw-clearfix arpw-92"><a class="arpw-title" href="https://congressmatters.com/cat-tutoriale/carduri-de-wordpress-uor-wordpress-cu-pluginul/" rel="bookmark" data-wpel-link="internal">Carduri de WordPress ușor WordPress cu pluginul TCWP</a></li><li class="arpw-li arpw-clearfix arpw-93"><a class="arpw-title" href="https://congressmatters.com/khong-co-th-loi/cong-c-thng-mi-in-t-inmotion/" rel="bookmark" data-wpel-link="internal">Công cụ thương mại điện tử InMotion</a></li><li class="arpw-li arpw-clearfix arpw-94"><a class="arpw-title" href="https://congressmatters.com/page-6/wordpresssquarespace/" rel="bookmark" data-wpel-link="internal">WordPressとSquarespace:違いと機能</a></li><li class="arpw-li arpw-clearfix arpw-95"><a class="arpw-title" href="https://congressmatters.com/cat-tutoriais/como-adicionar-estilos-personalizados-ao-editor/" rel="bookmark" data-wpel-link="internal">Como adicionar estilos personalizados ao editor visual do WordPress</a></li><li class="arpw-li arpw-clearfix arpw-96"><a class="arpw-title" href="https://congressmatters.com/cat-dicas/como-melhorar-a-reputacao-do-seu-site-wordpress/" rel="bookmark" data-wpel-link="internal">Como melhorar a reputação do seu site WordPress agora mesmo</a></li><li class="arpw-li arpw-clearfix arpw-97"><a class="arpw-title" href="https://congressmatters.com/cat-poradniki/ponad-50-niesamowitych-skrotow-wordpress-w-celu/" rel="bookmark" data-wpel-link="internal">Ponad 50 niesamowitych skrótów WordPress w celu zwiększenia wydajności</a></li><li class="arpw-li arpw-clearfix arpw-98"><a class="arpw-title" href="https://congressmatters.com/cat-diverse/migration-plugins-uber-for-ditt-wordpress-nettsted/" rel="bookmark" data-wpel-link="internal">Migration Plugins – Uber for ditt WordPress-nettsted</a></li><li class="arpw-li arpw-clearfix arpw-99"><a class="arpw-title" href="https://congressmatters.com/cat-opinii/affiliate-wp-cel-mai-bun-plugin-de-marketing/" rel="bookmark" data-wpel-link="internal">Affiliate WP – Cel mai bun plugin de marketing afiliat pentru WordPress</a></li><li class="arpw-li arpw-clearfix arpw-100"><a class="arpw-title" href="https://congressmatters.com/cat-diversos/os-10-principais-filtros-de-palavroes-do-wordpress/" rel="bookmark" data-wpel-link="internal">Os 10 principais filtros de palavrões do WordPress e plug-ins de bloqueio de spam</a></li></ul></div></div><div id="custom_html-3" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><iframe loading="lazy" data-lazy="1" src="about:blank" class="tf_iframe_lazy" width="560" height="315" data-tf-src="https://www.youtube.com/embed/Pe_DltNmyE4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-rocket-lazyload="fitvidscompatible" data-lazy-src=""></iframe><noscript><iframe loading="lazy" data-lazy="1" src="about:blank" class="tf_iframe_lazy" width="560" height="315" data-tf-src="https://www.youtube.com/embed/Pe_DltNmyE4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></noscript></div></div><div id="zoom-social-icons-widget-2" class="widget zoom-social-icons-widget"><ul class="zoom-social-icons-list zoom-social-icons-list--with-canvas zoom-social-icons-list--round zoom-social-icons-list--no-labels"><li class="zoom-social_icons-list__item"> <a class="zoom-social_icons-list__link" href="https://www.facebook.com/plance.top/" target="_blank" data-wpel-link="external" rel="external noopener noreferrer"> <span class="screen-reader-text">facebook</span> <span class="zoom-social_icons-list-span social-icon socicon socicon-facebook" data-hover-rule="background-color" data-hover-color="#3b5998" style="background-color : #3b5998; font-size: 18px; padding:8px" ></span> </a></li><li class="zoom-social_icons-list__item"> <a class="zoom-social_icons-list__link" href="https://twitter.com/plance_top" target="_blank" data-wpel-link="external" rel="external noopener noreferrer"> <span class="screen-reader-text">twitter</span> <span class="zoom-social_icons-list-span social-icon socicon socicon-twitter" data-hover-rule="background-color" data-hover-color="#1da1f2" style="background-color : #1da1f2; font-size: 18px; padding:8px" ></span> </a></li><li class="zoom-social_icons-list__item"> <a class="zoom-social_icons-list__link" href="https://vk.com/plance_top" target="_blank" data-wpel-link="external" rel="external noopener noreferrer"> <span class="screen-reader-text">vkontakte</span> <span class="zoom-social_icons-list-span social-icon socicon socicon-vkontakte" data-hover-rule="background-color" data-hover-color="#5a7fa6" style="background-color : #5a7fa6; font-size: 18px; padding:8px" ></span> </a></li><li class="zoom-social_icons-list__item"> <a class="zoom-social_icons-list__link" href="http://t.me/plance_top" target="_blank" data-wpel-link="external" rel="external noopener noreferrer"> <span class="screen-reader-text">telegram</span> <span class="zoom-social_icons-list-span social-icon socicon socicon-telegram" data-hover-rule="background-color" data-hover-color="#0088cc" style="background-color : #0088cc; font-size: 18px; padding:8px" ></span> </a></li></ul></div><div id="custom_html-2" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><script type="text/javascript">document.write("<a href='http://www.liveinternet.ru/click' "+ "target=_blank rel=nofollow><img src='//counter.yadro.ru/hit?t20.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ ";"+Math.random()+ "' alt='' title='' "+ "border='0' width='88' height='31'><\/a>")</script></div></div><div id="execphp-5" class="widget widget_execphp"><div class="execphpwidget"><br></div></div></div></div></div><div id="footerwrap"><div id="footer" class="pagewidth clearfix" itemscope="itemscope" itemtype="https://schema.org/WPFooter"><div class="footer-widgets clearfix"><div class="col3-1 first"></div><div class="col3-1 "></div><div class="col3-1 "></div></div><p class="back-top"><a href="#header">Back to Top</a></p><div class="footer-text-wrap clearfix"><ul id="footer-nav" class="footer-nav"><li class="home"><a href="https://congressmatters.com/" data-wpel-link="internal">Home</a></li><li class="menu-item-custom-5772 menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-5772"><a href="https://congressmatters.com/" data-wpel-link="internal">Home</a></li><li class="menu-item-category-119 menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5769"><a href="https://congressmatters.com/category/obzory-veb-hostinga/" data-wpel-link="internal">Обзоры веб-хостинга</a></li><li class="menu-item-category-61 menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5770"><a href="https://congressmatters.com/category/cat-rukovodstva-po-sozdaniju-sajtov/" data-wpel-link="internal">Руководства по созданию сайтов</a></li><li class="menu-item-category-59 menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5773"><a href="https://congressmatters.com/category/cat-uchebniki/" data-wpel-link="internal">Учебники</a></li></ul><div class="footer-text clearfix"></div></div></div></div></div> <script type="application/ld+json">[{"@context":"https:\/\/schema.org","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/congressmatters.com\/khong-co-th-loi\/phat-trin-ch-wordpress-101\/"},"headline":"Ph\u00e1t tri\u1ec3n ch\u1ee7 \u0111\u1ec1 WordPress (101)","datePublished":"2020-06-07T14:17:30+03:00","dateModified":"2020-06-07T14:17:30+03:00","author":{"@type":"Person","name":"Jeffrey Wilson"},"publisher":{"@type":"Organization","name":"","logo":{"@type":"ImageObject","url":"","width":0,"height":0}},"description":"H\u1ecdc c\u00e1ch t\u1ea1o ch\u1ee7 \u0111\u1ec1 WordPress m\u1edf ra m\u1ed9t th\u1ebf gi\u1edbi ho\u00e0n to\u00e0n m\u1edbi \u0111\u1ec3 b\u1ea1n kh\u00e1m ph\u00e1. N\u00f3 cho ph\u00e9p b\u1ea1n x\u00e2y d\u1ef1ng c\u00e1c thi\u1ebft k\u1ebf t\u00f9y ch\u1ec9nh cho ch\u00ednh m\u00ecnh, kh\u00e1ch h\u00e0ng c\u1ee7a b\u1ea1n v\u00e0 th\u1eadm ch\u00ed \u0111\u00f3ng g\u00f3p l\u1ea1i cho c\u1ed9ng \u0111\u1ed3ng ngu\u1ed3n m\u1edf. Trong h\u01b0\u1edbng d\u1eabn n\u00e0y, ch\u00fang t\u00f4i s\u1ebd \u0111\u01b0a […]"}]</script> <script type="text/javascript">var thirstyGoogleClickTrack = function ( e ) { var $this = jQuery( this ), linkID = $this.data( 'linkid' ), href = linkID ? $this.attr( 'href' ) : thirstyFunctions.isThirstyLink( $this.attr( 'href' ) ), action_name = 'Affiliate Link', page_slug = '/khong-co-th-loi/phat-trin-ch-wordpress-101/', home_url = 'https://congressmatters.com'; if ( ! href || typeof ga !== 'function' ) { return; } var is_uncloak = href.indexOf( home_url + '/' + thirsty_global_vars.link_prefix ) < 0, href_parts = href.split('/'), href_last = href_parts[ href_parts.length - 1 ] ? href_parts[ href_parts.length - 1 ] : href_parts[ href_parts.length - 2 ], link_text = $this.text(), link_uri = linkID && is_uncloak ? href : href.replace( home_url , '' ), link_slug = linkID && is_uncloak ? href : href_last; ga( 'send' , 'event' , { eventCategory : action_name, eventAction : link_uri, eventLabel : page_slug, transport : 'beacon' } ); }; jQuery( document ).ready( function($) { $( 'body' ).on( 'click', 'a', thirstyGoogleClickTrack ); });</script> <script type="text/template" id="tf_vars">var tbLocalScript = {"builder_url":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder","css_module_url":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/css\/modules\/","js_module_url":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/","js_modules":{"fwr":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/fullwidthRows.js","bgs":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/backgroundSlider.js","fwv":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/fullwidthvideo.js","feature":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/feature.js","parallax":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/parallax.js","bgzs":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/bgzoom_scroll.js","bgzoom":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/bgzoom.js","gallery":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/gallery.js","menu":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/menu.js","read":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/readMore.js","sticky":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/sticky.js","alert":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/alert.js","tab":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/tab.js","accordion":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/accordion.js","oc":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/overlay-content.js","video":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/modules\/video.js","sh":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/themify-builder\/js\/themify.scroll-highlight.js"},"breakpoints":{"tablet_landscape":[769,"1024"],"tablet":[681,"768"],"mobile":"600"},"fullwidth_support":"1","addons":[]}; var themify_vars = {"version":"5.0.5","url":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify","wp":"5.4.4","ajax_url":"https:\/\/congressmatters.com\/wp-admin\/admin-ajax.php","includesURL":"https:\/\/congressmatters.com\/wp-includes\/","emailSub":"Check this out!","lightbox":[],"s_v":"5.3.6","a_v":"3.6.2","i_v":"4.1.4","js_modules":{"fxh":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/fixedheader.js","lb":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/lightbox.min.js","gal":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/themify.gallery.js","sw":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/swiper\/swiper.min.js","tc":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/themify.carousel.js","map":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/map.js","img":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/jquery.imagesloaded.min.js","at":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/autoTiles.js","iso":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/isotop.js","inf":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/infinite.js","lax":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/lax.js","audio":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/audio-player.js","side":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/themify.sidemenu.js","edge":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/edge.Menu.js","wow":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/tf_wow.js","share":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/sharer.js","mega":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/megamenu.js","drop":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/themify.dropdown.js","wc":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/js\/modules\/wc.js"},"css_modules":{"sw":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/css\/swiper\/swiper.css","an":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/css\/animate.min.css","audio":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/css\/modules\/audio.css","drop":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/css\/modules\/dropdown.css","lb":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/themify\/css\/lightbox.css"},"is_min":"1","wp_embed":"https:\/\/congressmatters.com\/wp-includes\/js\/wp-embed.min.js","theme_js":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr\/js\/themify.script.js","theme_v":"5.0.6","theme_url":"https:\/\/congressmatters.com\/wp-content\/themes\/minblr","menu_point":"900","media":{"css":{"wp-mediaelement":"https:\/\/congressmatters.com\/wp-includes\/js\/mediaelement\/mediaelementplayer-legacy.min.css?ver=5.4.4","mediaelement":"https:\/\/congressmatters.com\/wp-includes\/js\/mediaelement\/wp-mediaelement.css?ver=5.4.4"},"_wpmejsSettings":"var _wpmejsSettings = {\"pluginPath\":\"\\\/wp-includes\\\/js\\\/mediaelement\\\/\",\"classPrefix\":\"mejs-\",\"stretching\":\"responsive\"};","js":{"mediaelement-core":{"src":"https:\/\/congressmatters.com\/wp-includes\/js\/mediaelement\/mediaelement-and-player.min.js","v":"4.2.13-9993131","extra":{"before":[false,"var mejsL10n = {\"language\":\"en\",\"strings\":{\"mejs.download-file\":\"Download File\",\"mejs.install-flash\":\"You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https:\\\/\\\/get.adobe.com\\\/flashplayer\\\/\",\"mejs.fullscreen\":\"Fullscreen\",\"mejs.play\":\"Play\",\"mejs.pause\":\"Pause\",\"mejs.time-slider\":\"Time Slider\",\"mejs.time-help-text\":\"Use Left\\\/Right Arrow keys to advance one second, Up\\\/Down arrows to advance ten seconds.\",\"mejs.live-broadcast\":\"Live Broadcast\",\"mejs.volume-help-text\":\"Use Up\\\/Down Arrow keys to increase or decrease volume.\",\"mejs.unmute\":\"Unmute\",\"mejs.mute\":\"Mute\",\"mejs.volume-slider\":\"Volume Slider\",\"mejs.video-player\":\"Video Player\",\"mejs.audio-player\":\"Audio Player\",\"mejs.captions-subtitles\":\"Captions\\\/Subtitles\",\"mejs.captions-chapters\":\"Chapters\",\"mejs.none\":\"None\",\"mejs.afrikaans\":\"Afrikaans\",\"mejs.albanian\":\"Albanian\",\"mejs.arabic\":\"Arabic\",\"mejs.belarusian\":\"Belarusian\",\"mejs.bulgarian\":\"Bulgarian\",\"mejs.catalan\":\"Catalan\",\"mejs.chinese\":\"Chinese\",\"mejs.chinese-simplified\":\"Chinese (Simplified)\",\"mejs.chinese-traditional\":\"Chinese (Traditional)\",\"mejs.croatian\":\"Croatian\",\"mejs.czech\":\"Czech\",\"mejs.danish\":\"Danish\",\"mejs.dutch\":\"Dutch\",\"mejs.english\":\"English\",\"mejs.estonian\":\"Estonian\",\"mejs.filipino\":\"Filipino\",\"mejs.finnish\":\"Finnish\",\"mejs.french\":\"French\",\"mejs.galician\":\"Galician\",\"mejs.german\":\"German\",\"mejs.greek\":\"Greek\",\"mejs.haitian-creole\":\"Haitian Creole\",\"mejs.hebrew\":\"Hebrew\",\"mejs.hindi\":\"Hindi\",\"mejs.hungarian\":\"Hungarian\",\"mejs.icelandic\":\"Icelandic\",\"mejs.indonesian\":\"Indonesian\",\"mejs.irish\":\"Irish\",\"mejs.italian\":\"Italian\",\"mejs.japanese\":\"Japanese\",\"mejs.korean\":\"Korean\",\"mejs.latvian\":\"Latvian\",\"mejs.lithuanian\":\"Lithuanian\",\"mejs.macedonian\":\"Macedonian\",\"mejs.malay\":\"Malay\",\"mejs.maltese\":\"Maltese\",\"mejs.norwegian\":\"Norwegian\",\"mejs.persian\":\"Persian\",\"mejs.polish\":\"Polish\",\"mejs.portuguese\":\"Portuguese\",\"mejs.romanian\":\"Romanian\",\"mejs.russian\":\"Russian\",\"mejs.serbian\":\"Serbian\",\"mejs.slovak\":\"Slovak\",\"mejs.slovenian\":\"Slovenian\",\"mejs.spanish\":\"Spanish\",\"mejs.swahili\":\"Swahili\",\"mejs.swedish\":\"Swedish\",\"mejs.tagalog\":\"Tagalog\",\"mejs.thai\":\"Thai\",\"mejs.turkish\":\"Turkish\",\"mejs.ukrainian\":\"Ukrainian\",\"mejs.vietnamese\":\"Vietnamese\",\"mejs.welsh\":\"Welsh\",\"mejs.yiddish\":\"Yiddish\"}};"]}},"mediaelement-migrate":{"src":"https:\/\/congressmatters.com\/wp-includes\/js\/mediaelement\/mediaelement-migrate.min.js","v":false,"extra":""},"wp-mediaelement":{"src":"https:\/\/congressmatters.com\/wp-includes\/js\/mediaelement\/wp-mediaelement.min.js","v":false,"extra":""}}}};</script> <script>var wares_ajax = {"wares_url":"https:\/\/congressmatters.com\/wp-admin\/admin-ajax.php"};</script> <script>var tocplus = {"visibility_show":"show","visibility_hide":"hide","visibility_hide_by_default":"1","width":"Auto"};</script> <script>var thirsty_global_vars = {"home_url":"\/\/congressmatters.com","ajax_url":"https:\/\/congressmatters.com\/wp-admin\/admin-ajax.php","link_fixer_enabled":"yes","link_prefix":"recommends","link_prefixes":["recommends"],"post_id":"4571","enable_record_stats":"yes","enable_js_redirect":"yes","disable_thirstylink_class":""};</script> <svg id="tf_svg" style="display:none"><defs></defs></svg><link rel="preload" href="https://congressmatters.com/wp-content/themes/minblr/js/themify.script.js?ver=5.0.6" as="script"/><link rel="prefetch" href="https://congressmatters.com/wp-content/themes/minblr/themify/js/modules/jquery.imagesloaded.min.js?ver=4.1.4" as="script"/><link rel="preload" href="https://congressmatters.com/wp-content/uploads/2020/01/congress.png" as="image"/><ins id="adsense" class="adsbygoogle" data-tag="flat_pm" style="position:absolute;left:-9999px;top:-9999px">Adblock<br>detector</ins><style>.arcticmodal-overlay,.arcticmodal-container{position:fixed;left:0;top:0;right:0;bottom:0;z-index:1000}.arcticmodal-container{overflow:auto;margin:0;padding:0;border:0;border-collapse:collapse}:first-child+html .arcticmodal-container{height:100%}.arcticmodal-container_i{height:100%;margin:0 auto}.arcticmodal-container_i2{vertical-align:middle!important;border:none!important}.flat_pm_modal{min-width:200px;min-height:100px;position:relative;background:#fff}.flat_pm_modal .flat_pm_timer,.flat_pm_modal .flat_pm_crs{top:0!important}.flat_pm_crs{transition:box-shadow .2s ease;position:absolute;top:0;right:0;width:34px;height:34px;background:#000;display:block;cursor:pointer;z-index:99999;border:none;padding:0;min-width:0;min-height:0}.flat_pm_crs:hover{box-shadow:0 0 0 50px rgba(0,0,0,.2) inset}.flat_pm_crs:after,.flat_pm_crs:before{transition:transform .3s ease;content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;width:calc(34px / 2);height:3px;background:#fff;transform-origin:center;transform:rotate(45deg);margin:auto}.flat_pm_crs:before{transform:rotate(-45deg)}.flat_pm_crs:hover:after{transform:rotate(225deg)}.flat_pm_crs:hover:before{transform:rotate(135deg)}.flat_pm_timer{position:absolute;top:0;right:0;padding:0 15px;color:#fff;background:#000;line-height:34px;height:34px;text-align:center;font-size:14px}.flat_pm_timer span{font-size:16px;font-weight:600}.flat_pm_out{transition:transform .3s ease,opacity 0s ease;transition-delay:0s,.3s;position:fixed;min-width:250px;min-height:150px;z-index:9999;opacity:0;-webkit-backface-visibility:hidden}.flat_pm_out *{max-width:none!important}.flat_pm_out.top .flat_pm_crs{top:auto;bottom:150px}.flat_pm_out.show.top .flat_pm_crs{bottom:0}.flat_pm_out.bottom .flat_pm_crs{top:150px}.flat_pm_out.show.bottom .flat_pm_crs{top:0}.flat_pm_out.right .flat_pm_crs{right:auto;left:0}.flat_pm_out.top .flat_pm_timer{top:auto;bottom:150px}.flat_pm_out.show.top .flat_pm_timer{bottom:0}.flat_pm_out.bottom .flat_pm_timer{top:150px}.flat_pm_out.show.bottom .flat_pm_timer{top:0}.flat_pm_out.right .flat_pm_timer{right:auto;left:0}.flat_pm_out.top{bottom:100%;left:50%;transform:translateY(0) translateX(-50%);padding-bottom:150px}.flat_pm_out.bottom{top:100%;left:50%;transform:translateY(0) translateX(-50%);padding-top:150px}.flat_pm_out.left{bottom:0;right:100%;transform:translateX(0)}.flat_pm_out.right{bottom:0;left:100%;transform:translateX(0)}.flat_pm_out.show{transition-delay:0s,0s;opacity:1;min-width:0;min-height:0;background:#fff}.flat_pm_out.closed{min-width:0;min-height:0}.flat_pm_out.show.top{transform:translateY(100%) translateX(-50%);padding-bottom:0}.flat_pm_out.show.bottom{transform:translateY(-100%) translateX(-50%);padding-top:0}.flat_pm_out.show.left{transform:translateX(100%)}.flat_pm_out.show.right{transform:translateX(-100%)}.flatpm_fixed{position:fixed;z-index:50}.flatpm_stop{position:relative;z-index:50}</style> <script>window.lazyLoadOptions={elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){return} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){return} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async src="https://congressmatters.com/wp-content/plugins/wp-rocket/assets/js/lazyload/12.0/lazyload.min.js"></script> <script src="https://congressmatters.com/wp-content/cache/min/1/1f50acad1c200e893247bec905d87f05.js" data-minify="1" defer></script></body></html> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me -->