Peraturan penulisan semula berbilang memautkan artikel tersuai PHP.
P粉393030917
P粉393030917 2023-07-27 12:19:25
0
1
444
<p>Saya baru menggunakan PHP dan saya cuba melakukan beberapa peraturan menulis semula untuk menukar struktur beberapa pautan. Saya mencuba beberapa kod yang ditemui dan kod ini hanya berfungsi untuk jenis siaran tersuai pertama yang saya nyatakan dalam gelung untuk. Saya ingin membuat gelung for yang mengubah pautan untuk semua jenis siaran tersuai yang saya nyatakan (nama jenis siaran ini berada dalam tatasusunan), berikut ialah kod peraturan penulisan semula saya: </p> <pre class="brush:php;toolbar:false;">function mycustomname_link($post_link, $post = 0) { if($post->post_name === $name_of_my_post) { return home_url('new' .'/'. 'posts'.'/'. $post->post_name .'/'. $post->ID . '/'); } lain{ kembalikan $post_link; } } add_filter('post_type_link', 'mycustomname_link', 1,3); fungsi mycustomname_rewrites_init(){ add_rewrite_rule('new/posts/([^/]+)/([0-9]+)?$', 'index.php?post_type=nature_posts&p=$matches[1]&p=$matches[ 2]', 'atas'); flush_rewrite_rules(); } add_action('init', 'mycustomname_rewrites_init'); </pra> <p>Saya lihat terdapat penyataan pulangan dalam fungsi jadi ia hanya akan menggunakan peraturan penulisan semula pada lelaran pertama dan nama pos tersuai pertama, bagaimana saya boleh membuat gelung for supaya ia berfungsi untuk saya semua post_names yang ditentukan dan tidak berhenti pada lelaran pertama? </p>
P粉393030917
P粉393030917

membalas semua(1)
P粉605233764

Anda boleh mencuba ini:

Dalam fungsi mycustomname_link, kami menambah gelung untuk gelung melalui tatasusunan $custom_post_types. Untuk setiap jenis siaran tersuai, ia menyemak sama ada jenis siaran semasa sepadan dengan mana-mana nama dalam tatasusunan. Sekiranya terdapat padanan, peraturan penulisan semula akan digunakan.
Begitu juga, dalam fungsi mycustomname_rewrites_init, kami menambah gelung untuk mendaftarkan peraturan penulisan semula untuk semua jenis siaran tersuai. Setiap jenis siaran tersuai akan mempunyai peraturan penulisan semula sendiri.

Dengan pengubahsuaian ini, peraturan penulisan semula akan digunakan pada semua jenis siaran tersuai yang dinyatakan dalam tatasusunan $custom_post_types tanpa berhenti pada lelaran pertama. Pastikan anda mengemas kini tatasusunan $custom_post_types dengan nama semua jenis siaran tersuai yang anda mahu sertakan dalam peraturan penulisan semula.


function mycustomname_link($post_link, $post = 0) {
    $custom_post_types = array('name_of_my_post', 'another_post_type', 'yet_another_post_type'); // Add all your custom post type names here

    foreach ($custom_post_types as $post_type) {
        if ($post->post_type === $post_type) {
            return home_url('new' .'/'. 'posts'.'/'. $post->post_name .'/'. $post->ID . '/');
        }
    }

    return $post_link;
}
add_filter('post_type_link', 'mycustomname_link', 10, 2);

function mycustomname_rewrites_init(){
    $custom_post_types = array('name_of_my_post', 'another_post_type', 'yet_another_post_type'); // Add all your custom post type names here

    foreach ($custom_post_types as $post_type) {
        add_rewrite_rule('new/posts/([^/]+)/([0-9]+)?$', 'index.php?post_type=' . $post_type . '&p=$matches[1]&p=$matches[2]', 'top');
    }

    flush_rewrite_rules();
}
add_action('init', 'mycustomname_rewrites_init');
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!