我有一个插件,我需要调整一个函数。特别是\'class\' => \'\'
.
这是插件中的代码:
function message_to( $atts, $content = null, $tag = \'\' ) {
$atts = shortcode_atts( array(
\'to\' => \'{current-post-author}\',
\'subject\' => \'{current-post-title}\',
\'text\' => __( \'Contact\',\'front-end-pm\' ),
\'class\' => \'fep-button\',
\'fep_mr_to\' => false, // Comma separated list of user ids (used in PRO version)
), $atts, $tag );
if ( \'{current-post-author}\' == $atts[\'to\'] ) {
$atts[\'to\'] = get_the_author_meta( \'user_nicename\' );
} elseif ( \'{current-author}\' == $atts[\'to\'] ) {
if ( $nicename = fep_get_userdata( get_query_var( \'author_name\' ), \'user_nicename\' ) ) {
$atts[\'to\'] = $nicename;
} elseif ( $nicename = fep_get_userdata( get_query_var( \'author\' ), \'user_nicename\', \'id\' ) ) {
$atts[\'to\'] = $nicename;
}
unset( $nicename );
} elseif ( \'{um-current-author}\' == $atts[\'to\'] && function_exists( \'um_profile_id\' ) ) {
$atts[\'to\'] = fep_get_userdata( um_profile_id(), \'user_nicename\', \'id\' );
} else {
$atts[\'to\'] = esc_html( $atts[\'to\'] );
}
if ( false !== strpos( $atts[\'subject\'], \'{current-post-title}\' ) ) {
$atts[\'subject\'] = rawurlencode( str_replace( \'{current-post-title}\', get_the_title(), $atts[\'subject\'] ) );
} elseif ( ! empty( $atts[\'subject\'] ) ) {
$atts[\'subject\'] = rawurlencode( $atts[\'subject\'] );
} else {
$atts[\'subject\'] = false;
}
if ( empty( $atts[\'to\'] ) && empty( $atts[\'fep_mr_to\'] ) ) {
return \'\';
}
return \'<a href="\' . fep_query_url( \'newmessage\', array( \'fep_to\' => $atts[\'to\'], \'message_title\' => $atts[\'subject\'], \'fep_mr_to\' => $atts[\'fep_mr_to\'] ) ) . \'" class="\' . esc_attr( $atts[\'class\'] ) . \'">\' . esc_html( $atts[\'text\'] ) . \'</a>\';
}
原始函数指定类:
\'class\' => \'fep-button\',
我需要换个别的
via child theme:
\'class\' => \'something-else\',
最合适的回答,由SO网友:butlerblog 整理而成
按照编写函数的方式,默认值在插件中是不可编辑的,因为没有过滤器挂钩来更改它们。
然而,这是短代码的一个特定“属性”。shortcode_atts()
是一个定义短代码属性(可以通过短代码本身传递)并设置其默认值的函数。只有在短代码中未指定属性时,才使用默认值。指定时,将使用该属性的传递值。
因此,如果要传递不同的类,可以在使用快捷码时传递:
[name\\u of\\u shortcode class=“其他内容”]
(注意:我使用了“name\\u of\\u shortcode”,因为您没有包含此shortcode的特定标记-请相应地编辑)