Profil detayı eklendi, herkes profillerine girip bir gözatsın! Sevdiğiniz üyelerin cevaplarını takip edin! Tüm güncellemeler

Wordpress - Custom Sayfa/Route Üretmek

Arkadaşlar selam şöyle bir sorum olacak;


Ben wordpress'e custom bir route girmek ve bu route'u da, kendi yazdığım sayfa üzerinden çalıştırmak istiyorum. Ne demek istiyorum? Şunu:


www.domain.com/program/{id}/{sef-url} şeklinde bir yapı olacak.

program isimli route'a gelindiğinde; kendi oluşturduğum sayfa tasarımı çalışacak ve buna ben custom PHP girerek curl ile dışardan data çekeceğim.

Yani bu url'ye girince ben id'yi alacağım, curl ile bir rest api'den bilgiyi alacağım ve kendi belirlediğim tasarım ile sayfaya basacağım.


Bunun için hangi adımları izlemek doğru olur?

1

Cevaplar (1)

İşlem devam ediyor, lütfen bekleyin..
Tayfun Erbilen
Doğru Cevap
@tayfunerbilen
5 ay önce [Güncellendi]

Bunu yapmanın aslında en kolay yolu mevcut tema içerisinde bir tane program.php dosyası oluştur. İçi şu şekilde olsun;


<?php
/**
 * Template Name: Program
 */


Bu şekilde yaptığında yönetim panelinden yeni sayfa eklemeye girdiğinde sağda şablonlarda bu program şablonu çıkacak. Onu seçerek sayfa adını program yapıp kaydet;



Şimdide temanda ki functions.php dosyasını açıp şunları ekle;


add_filter( 'rewrite_rules_array','my_insert_rewrite_rules' );
add_filter( 'query_vars','my_insert_query_vars' );
add_action( 'wp_loaded','my_flush_rules' );
function my_flush_rules(){
    $rules = get_option( 'rewrite_rules' );
    if ( ! isset( $rules['program/([0-9]+)/([0-9a-zA-Z-_]+)'] ) ) {
        global $wp_rewrite;
        $wp_rewrite->flush_rules();
    }
}
function my_insert_rewrite_rules( $rules )
{
    $newrules = array();
    $newrules['program/([0-9]+)/([0-9a-zA-Z-_]+)'] = 'index.php?pagename=program&id=$matches[1]&url=$matches[2]';
    return $newrules + $rules;
}
function my_insert_query_vars( $vars )
{
    array_push($vars, 'id', 'url');
    return $vars;
}


Ve temada oluşturduğun program.php dosyanı şu şekilde değiştir;


<?php
/**
 * Template Name: Program
 */
get_header();

//global $wp_query;
echo 'ID: ' . $wp_query->query_vars['id'] . '<br>';
echo 'URL: ' . $wp_query->query_vars['url'];

get_footer();


Artık id ve url'i bu şekilde alabiliyorsun. Ve istediğin link yapısına sahipsin. Bundan sonrası gelen id ve url'i alıp istediğin curl sorgusunu yapıp içerik göstermekte. Gerisi sana kalmış :)

Cevapla @tcagkansokmen5 ay önce
Ne diyeyim Tayfun, çok teşekkürler süper cevap :)
İşlem devam ediyor, lütfen bekleyin..

Cevap yaz Sadece sorunun cevabını yazın

Yabancı Dizi Arşivi