Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在WordPress中向前端用户显示错误和信息消息_Php_Wordpress - Fatal编程技术网

Php 在WordPress中向前端用户显示错误和信息消息

Php 在WordPress中向前端用户显示错误和信息消息,php,wordpress,Php,Wordpress,我的目标是在WordPress中向前端用户显示错误和信息消息 在BuddyPress中,bp\u core\u add\u message()可用于向WP cookie添加反馈(错误/成功)消息,以便在页面重新加载后显示。WordPress中有这样的功能吗 参考: 更新 改编自bp-core-functions.php: function add_message( $message, $type = '' ) { // success is the default if (

我的目标是在WordPress中向前端用户显示错误和信息消息

在BuddyPress中,
bp\u core\u add\u message()
可用于向WP cookie添加反馈(错误/成功)消息,以便在页面重新加载后显示。WordPress中有这样的功能吗

参考:

更新

改编自bp-core-functions.php:

function add_message( $message, $type = '' ) {

    // success is the default
    if ( empty( $type ) )
        $type = 'success';

    // Send the values to the cookie for page reload display
    @setcookie( 'wp-message',      $message, time() + 60 * 60 * 24, COOKIEPATH );
    @setcookie( 'wp-message-type', $type,    time() + 60 * 60 * 24, COOKIEPATH );

}


function setup_message() {

    if ( isset( $_COOKIE['wp-message'] ) )
        $template_message = stripslashes( $_COOKIE['wp-message'] );

    if ( isset( $_COOKIE['wp-message-type'] ) )
        $template_message_type = stripslashes( $_COOKIE['wp-message-type'] );

    add_action( 'template_notices', 'render_message' );

    if ( isset( $_COOKIE['wp-message'] ) )
        @setcookie( 'wp-message', false, time() - 1000, COOKIEPATH );
    if ( isset( $_COOKIE['wp-message-type'] ) )
        @setcookie( 'wp-message-type', false, time() - 1000, COOKIEPATH );
}
add_action( 'wp', 'setup_message', 5 );


function render_message() {

    if ( isset( $_COOKIE['wp-message'] ) ) {
    $template_message = stripslashes( $_COOKIE['wp-message'] );

    if ( ! empty( $template_message ) ) :
        $type    = ( 'success' == stripslashes( $_COOKIE['wp-message-type'] ) ) ? 'updated' : 'error';
        $content = apply_filters( 'render_message_content', stripslashes( $_COOKIE['wp-message'] ), $type ); ?>

        <div id="message" class="template-message <?php echo $type; ?>">
            <?php echo $content; ?>
        </div>

    <?php
        do_action( 'render_message' );
    endif;
    }
}
函数添加消息($message,$type=''){
//成功是默认的
if(空($type))
$type='success';
//将值发送到cookie以进行页面重新加载显示
@setcookie('wp message',$message,time()+60*60*24,COOKIEPATH);
@setcookie('wp message type',$type,time()+60*60*24,COOKIEPATH);
}
函数设置_消息(){
如果(isset($_COOKIE['wp-message']))
$template_message=stripslashes($_COOKIE['wp-message']);
如果(isset($_COOKIE['wp-message-type']))
$template_message_type=stripslashes($_COOKIE['wp-message-type']);
添加操作(“模板通知”、“呈现消息”);
如果(isset($_COOKIE['wp-message']))
@setcookie('wp message',false,time()-1000,COOKIEPATH);
如果(isset($_COOKIE['wp-message-type']))
@setcookie('wp message type',false,time()-1000,COOKIEPATH);
}
添加操作('wp','setup_message',5);
函数render_message(){
如果(isset($_COOKIE['wp-message'])){
$template_message=stripslashes($_COOKIE['wp-message']);
如果(!empty($template_message)):
$type=('success'==stripslashes($_COOKIE['wp-message-type'])?'updated':'error';
$content=apply_过滤器('render_message_content',stripslashes($_COOKIE['wp-message']),$type);?>

猜猜看-你有没有尝试过在你的WP模板中添加do_action('template_notices')?嗨@shanebp-是的,我的footer.php中有一个钩子。如果你查看这个函数(为了方便起见,我在GitHub上链接到了),消息被发送到$bp全局。例如,
$bp->template\u message=$message;
-是否100%需要这样做?或者我可以设置cookie吗?您可以随时设置cookie,但问题是如何读取它。不清楚您正在尝试做什么(或者为什么!),但您可能需要在WP中使用自定义操作来调用利用$bp global的函数。我正在一个不使用BuddyPress的网站上工作,但希望模拟bp设置和显示模板通知的方式。执行此操作的代码位于bp-core-functions.php中。该代码同时使用$bp global和cookies。问题是,$bp global没有在我的WP only安装中不可用。所以我想知道-我必须将信息或错误消息文本发送到全局变量(就像BP对$BP global所做的那样),还是只能使用cookies?