仅在某些页面上添加过滤器/功能


Only Add Filter / Function on Certain Pages

我想在WordPress中的functions.php中添加以下代码:

add_filter( 'gform_submit_button_4', 'form_submit_button', 10, 2 );
function form_submit_button( $button, $form ) {
    return "<button class='button' id='gform_submit_button_{$form['id']}'>Get a Test Drive</button>";
}

但是,我只想在某些页面上应用它,我已经尝试了两种途径:一个使用 is_page 的 if 语句,并将重力形式短代码包装在一个带有类的div 中,并且只针对.class #gform_submit_button_4到目前为止我还没有能够工作。

任何帮助将不胜感激。

谢谢
威廉

尝试使用get_queried_object函数,

<?php
function form_submit_button( $button, $form ) {
    return "<button class='button' id='gform_submit_button_{$form['id']}'>Get a Test Drive</button>";
}
$queried_object = get_queried_object();
if ( $queried_object ) {
    $pageId = $queried_object->ID;
    if($pageId == 'someid') {
        add_filter( 'gform_submit_button_4', 'form_submit_button', 10, 2 );
    }
}
?>

在重力形式中添加一个页面 slug 字段,其类型从重力形式的后端选项中隐藏。

1)您可以从后端创建字段并使用JS为其分配值

2)重力表单为您提供了一个选项,可以发送带有表单的URL,您可以从该URL解析页面块

add_filter( 'gform_submit_button_4', 'form_submit_button', 10, 2 ); function form_submit_button( $button, $form ) { // please print $form and check you get your current page slug variable e.g $form['my_page_slug'] // create an array that have your new button slugs e.g $pages_slug_array = array('about','contact-us'); if(in_array($page_slug_arry, $form['my_page_slug'])){ return $button = "<button class='button' id='gform_submit_button_{$form['id']}'>Get a Test Drive</button>"; } }

希望你明白了