簡體   English   中英

如何在Wordpress中捕獲URL參數並顯示自定義頁面標題

[英]How to catch a URL parameter and display a custom page title in wordpress

作為一個新手,我問了很多有償開發商,他們要么說“ 不” ,要么說價格過高,或者說“ 無法 實現”

但是,通過這里的所有交互,我在網站上幾乎沒有取得什么成就。 因此想到了第二點意見。

如果交易成功,則自定義網關付款插件將返回Woocommerce謝謝頁面,但如果付款失敗,則會返回到正常的wordpress頁面-failed-payment。

對於失敗的付款,返回URL為:

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');

是可以實現的還是不可能的? 如果可以實現,我應該如何做呢?

謝謝。

要從URL參數中捕獲b_name並將其分配給php變量,如下所示:

$b_name = $_GET['b_name'];

現在,您可以在代碼中使用它,例如:

$title = sprintf("Sorry, %s, Your payment was unnsuccessful", $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 =時,它才嘗試更改頁面標題。

通過在主題函數.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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM