Trang tạo WordPress theo chương trình

Xin chào, tôi muốn tạo một trang trong Wordpress bằng mã và không muốn đặt giá trị trường tùy chỉnh trong khi tạo trang

Những gì tôi đã thử

Đã thử tạo trang bằng mã này nhưng không thể đặt giá trị trường tùy chỉnh


Thêm giải pháp của bạn ở đây

 B   I   U   S  small BIG code var  <   >   &  link [^] encode untab case indent outdent

Xem trước 0

thành viên hiện tại

hoặc tham gia với chúng tôi

Tải xuống, Bình chọn, Nhận xét, Xuất bản

Email của bạn

Email này đang được sử dụng. Bạn có cần mật khẩu của bạn?

Mật khẩu tùy chọn

Khi trả lời câu hỏi, vui lòng.

  1. Đọc kỹ câu hỏi.
  2. Hiểu rằng tiếng Anh không phải là ngôn ngữ đầu tiên của mọi người, vì vậy hãy khoan dung với lỗi chính tả và ngữ pháp
  3. Nếu một câu hỏi được diễn đạt kém thì hãy yêu cầu làm rõ, bỏ qua nó hoặc chỉnh sửa câu hỏi và khắc phục sự cố. Xúc phạm không được chào đón
  4. Đừng bảo ai đó đọc hướng dẫn. Rất có thể họ có và không nhận được. Đưa ra câu trả lời hoặc chuyển sang câu hỏi tiếp theo
Let's work to help developers, not make them feel stupid.


Nội dung này, cùng với bất kỳ tệp và mã nguồn liên quan nào, được cấp phép theo Giấy phép Mở Dự án Code (CPOL)

Về cơ bản, bộ lọc sẽ xem liệu mẫu trang đặc biệt của bạn có được đặt cho trang hiện tại hay không, nếu có, hãy cập nhật đường dẫn đến mẫu bổ trợ của bạn thay thế

Chỉ cần chắc chắn rằng đường dẫn là đúng, nếu không bạn sẽ thấy bao gồm các lỗi. . )

Ok, vấn đề đầu tiên là WordPress xác thực bất kỳ mẫu nào được đặt làm mẫu trang, tức là. nó kiểm tra xem tệp có nằm trong thư mục chủ đề hay không và có phải là tệp mẫu hợp lệ hay không, nếu không, nó sẽ bỏ qua nó và bao gồm một mẫu chung chung hơn, như trang. php

Tuy nhiên, điều này không thay đổi thực tế là trường meta vẫn giữ giá trị của mẫu tùy chỉnh của bạn và is_page_template( 'tp-file.php' ) cũng sẽ trả về đúng nếu được sử dụng thay cho câu lệnh điều kiện trước đây của tôi, ví dụ:

// Filter page template
add_filter('page_template', 'catch_plugin_template');

// Page template filter callback
function catch_plugin_template($template) {
    // If tp-file.php is the set template
    if( is_page_template('tp-file.php') )
        // Update path(must be path, use WP_PLUGIN_DIR and not WP_PLUGIN_URL) 
        $template = WP_PLUGIN_DIR . '/tp-test/tp-file.php';
    // Return
    return $template;
}

GHI CHÚ. Tôi đã chuyển mã sang sử dụng WP_PLUGIN_DIR vì hằng số WP_PLUGIN_URL không phù hợp với đường dẫn. (bao gồm phải sử dụng đường dẫn, không phải URL)

Một vấn đề và đây thực sự không phải là điều bạn có thể khắc phục, đó là khi xem trang từ khu vực quản trị, khi chỉnh sửa trang, mẫu sẽ không được liệt kê là mẫu đang hoạt động và tất nhiên, việc lưu các thay đổi có thể thay đổi . Chúng tôi có thể làm được nhiều điều ở đó, trình đơn thả xuống mẫu trang được tạo từ một chức năng quét các tệp chủ đề, không có móc nối nào mà tôi có thể thấy sẽ cho phép chúng tôi mở rộng danh sách bằng các mẫu plugin

Cá nhân tôi muốn đề xuất, vì một cách giải quyết là lưu một trường meta bổ sung với mọi trang được tạo bằng trang plugin đặc biệt của bạn, sau đó thêm một móc nối vào save_post hoặc

add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});
0 và kiểm tra xem trường meta này có tồn tại không. . Trường meta bổ sung sẽ chỉ là một lá cờ để chỉ ra những trang nào cần đính kèm mẫu plugin của bạn

Thật đáng ngạc nhiên khi tạo một tuyến đường và hiển thị một mẫu tĩnh trong WordPress mà không gây rối với cơ sở dữ liệu. Ví dụ: giả sử bạn muốn tạo một trang “/error” tĩnh và không muốn có bất kỳ nội dung nào có thể chỉnh sửa được. Bạn chỉ muốn một mẫu cụ thể hiển thị ở tuyến đường đó mọi lúc

Nếu bạn tìm kiếm loại nội dung này trên Google, bạn sẽ tìm thấy rất nhiều kết quả về việc thiết lập trang đầu “tĩnh” (yêu cầu bật cài đặt trong quản trị viên WP) hoặc sử dụng mẫu

add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});
3 cho các trang cụ thể,

Nhưng nếu bạn muốn tạo và hiển thị nội dung cho một tuyến đường hoàn toàn bằng PHP — 100% theo lập trình thì sao?

Lập trình đăng ký một tuyến đường

Đối với sự cố này, chúng tôi sẽ đăng ký một tuyến đường tại

add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});
4 và để nó hiển thị
add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});
5. Nếu tôi điều hướng đến trang đó trên phiên bản WordPress “hộp cát” cục bộ của mình (nhân tiện, tôi đang sử dụng chủ đề 2019), tôi sẽ nhận được lỗi 404

Trang tạo WordPress theo chương trình

Để thực hiện điều này, chúng tôi sẽ dựa vào ba móc nối WordPress riêng biệt. Ở cấp độ cơ bản nhất, tất cả những thứ này có thể được đặt trong tệp

add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});
6 của chủ đề

Tạo quy tắc viết lại

Trước tiên, hãy tạo một quy tắc viết lại sẽ cố gắng khớp với một đường dẫn yêu cầu cụ thể, sau đó viết lại đường dẫn đó thành một đường dẫn mà WordPress sẽ sử dụng để phân tích cú pháp và hiển thị một trang. Hãy bắt đầu với điều này

add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});

Khi một yêu cầu đến với một đường dẫn giống như “/a-static-page”, chúng tôi đang viết lại đường dẫn để bao gồm một biến truy vấn

add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});
7, có giá trị là mẫu trang cụ thể mà chúng tôi muốn hiển thị —
add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});
8. Tuy nhiên, ngay bây giờ, biến truy vấn mới đó là vô dụng. Nó sẽ được lọc ra khi yêu cầu được phân tích cú pháp sau này, trừ khi chúng tôi đưa nó vào danh sách cho phép

Đưa Var truy vấn tùy chỉnh vào danh sách cho phép

Để làm điều đó, chúng tôi sẽ sử dụng bộ lọc

add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});
9, bộ lọc này sẽ cho phép truy cập biến
add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});
7 của chúng tôi khi chúng tôi chọn hiển thị mẫu tùy chỉnh (hoặc không)

add_filter('query_vars', function($queryVars) {
    $queryVars[] = 'static_template';

    return $queryVars;
));

Không có gì nhiều cho phần này. Bộ lọc

add_filter('query_vars', function($queryVars) {
    $queryVars[] = 'static_template';

    return $queryVars;
));
1 cung cấp cho chúng tôi các biến truy vấn được phép. Chúng tôi chỉ lấy một cái tùy chỉnh ở cuối. Với điều đó, chúng tôi có thể sử dụng biến để có thể hiển thị một mẫu cụ thể

Kết xuất một mẫu có điều kiện

Từ đây trở đi, vấn đề chỉ là thiết lập một số logic. Chúng tôi sẽ kiểm tra biến truy vấn của chúng tôi. Nếu nó được đặt, hãy trả lại mẫu trang tương ứng. Nếu không, hãy trả lại bất kỳ mẫu nào sẽ được hiển thị để bắt đầu

add_action('template_include', function($template) {
    $staticQueryVarValue = get_query_var('static_template');

    if(!empty($staticQueryVarValue)) {
        return get_stylesheet_directory() . "/static-templates/{$staticQueryVarValue}.php";
    }

    return $template;
});

Nếu bạn làm mới trang đó ngay bây giờ, bạn sẽ thấy nội dung trong khoảng thời gian

add_action('init', function () {
    add_rewrite_rule('a-static-page/?$', 'index.php?static_template=a-static-template', 'top');

	// Not required. Just here for easier local development.
	flush_rewrite_rules();
});
8

Không quá tệ, phải không?

Rõ ràng, đây là một ví dụ khá giả tạo. Trong trường hợp thực tế, có thể có một chút logic phức tạp hơn để giải quyết và bạn cũng có thể làm sạch điều này một chút, chẳng hạn như luôn đặt tên cho các mẫu tùy chỉnh theo đường dẫn tĩnh mà bạn đang đăng ký. Dù thế nào đi chăng nữa, điều này sẽ cung cấp đủ nền tảng để giúp bạn đi đúng hướng nhanh hơn một chút

Làm cách nào để tạo một trang WordPress mới theo lập trình?

Đây là quy trình. .
Nhận tài liệu của bạn theo thứ tự
Tạo nội dung cho (nhiều) trang WordPress
Viết các lệnh PHP để tạo (nhiều) trang WordPress
Chạy đoạn mã PHP và xuất bản – một lần

Làm cách nào để tạo một trang trong WordPress bằng PHP?

Cách thêm mã PHP vào bài đăng hoặc trang WordPress bằng plugin .
Từ bảng điều khiển WordPress của bạn, điều hướng đến XYZ PHP Code -> PHPCode Snippets
Trong trang Đoạn mã PHP, nhấp vào Thêm đoạn mã PHP mới. .
Nếu quá trình thành công, trên màn hình sẽ xuất hiện thông báo xác nhận và chức năng mới

Làm cách nào để tạo một plugin trong WordPress theo lập trình?

Cách tạo plugin WordPress (trong 6 bước) .
Bước 1. Thực hiện một số nghiên cứu và lập kế hoạch. Có hàng ngàn công cụ trong Thư mục plugin WordPress. .
Bước 2. Thiết lập môi trường thử nghiệm. .
Bước 3. Tạo tệp plugin. .
Bước 4. Thêm mã vào plugin của bạn. .
Bước 5. Kiểm tra plugin của bạn. .
Bước 6. Phân phối Plugin của bạn

Làm cách nào để tạo loại bài đăng tùy chỉnh trong WordPress theo chương trình?

Hãy tìm hiểu sâu về từng bước sau. .
Bước 1. Đăng ký Custom Post Type. .
Bước 2. Thêm mảng nhãn, thêm giá trị vào mảng đối số. .
Bước 3. Tạo phân loại tùy chỉnh. .
Bước 4. Tạo mẫu loại bài đăng tùy chỉnh để hiển thị nội dung. .
Bước 5. Xuất bản và thử nghiệm bài đăng tùy chỉnh