2017-09-13 52 views
0

自定義頁面標題作爲一個新手,我問這對大量的付費開發商誰或者說沒有或引用過高的價格或說無法實現如何捕捉一個URL參數,並顯示在WordPress

但是我在我的網站上完成了所有的交互,在這裏取得了一些成就。所以想到採取第二個意見。

自定義網關支付插件返回到Woocommerce謝謝頁面,如果交易成功但返回到正常wordpress頁面失敗付款,如果付款不成功。

對於不成功的支付返回網址是:

mysite.com/failed-payment/?b_name=Jack. 

在失敗的支付頁面,我要顯示個性化的頁面標題爲對不起,傑克,你的付款未成功。

創建新頁面模板或修改頁面模板文件不是一個選項。必須通過主題功能完成。 php

要寫頁面標題,我想到了以下內容寫在主題函數中。 PHP

function assignPageTitle($title){ 
     if (is_page(3062)) { 
      $title = sprintf("Sorry, %s, Your payment was unnsuccessful", b_name); 
    } 

    return $title; 
    } 
    add_filter('wp_title', 'assignPageTitle'); 

它是可以實現的或不可能的?如果可以實現,我應該怎麼做呢?

謝謝。

回答

0

從URL參數趕上b_name並將其分配給PHP變量是如下:

$title = sprintf("Sorry, %s, Your payment was unnsuccessful", $b_name); 

而且我會修改你的代碼:

$b_name = $_GET['b_name']; 

現在你可以在你的代碼,例如,用它只有當b_name可用時纔會改變標題(注意:我沒有測試過你的WP代碼,所以直接使用:)

function assignPageTitle($title){ 
    if (is_page(3062) && isset($_GET['b_name'])) { 

    $b_name = $_GET['b_name']; 
$title = sprintf("Sorry, %s, Your payment was unnsuccessful", $b_name); 
} 

return $title; 
} 
add_filter('wp_title', 'assignPageTitle'); 

請參閱我如何爲GET參數添加條件isset(),以便它只在url中有?b_name =可用時嘗試更改頁面標題。

+0

後,我把兩個PHP變量和函數的頁面標題並沒有改變到function.php。猜猜,它需要更多的代碼來完成任務。 – user2473109

0

通過下面的代碼放入你的主題function.php可以修改你的網頁的標題沒有改變/修改任何模板文件:

//modify page title: 
function assignPageTitle($title){ 
    $title = $_GET['b_name']; 
    if (is_page(3062)) { 
     return $title;  
    } 
    else{ 
     return $title; 
    } 
} 
add_filter('pre_get_document_title', 'assignPageTitle'); 

//Modify entry title 
add_filter('the_title', 'suppress_title', 10, 2); 
function suppress_title($title, $id = null){ 
    $b_name = $_GET['title']; 
    if (is_page(3062)) { 
      $title = sprintf("Sorry, %s, Your payment was unnsuccessful", $b_name); 
    }  
    return $title; 
} 
+0

代碼沒有改變標題,而是用靜態標題文本替換了所有菜單項。 – user2473109