繁体   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