【问题标题】:Add only one "Re: " to message subject on a reply在回复的消息主题中仅添加一个“Re:”
【发布时间】:2013-01-14 12:45:01
【问题描述】:

我使用私人消息脚本,它会在每次回复时将Re: 添加到消息主题。不幸的是,如果对同一条消息有多个回复,它会添加另一个Re:,所以在交换了几个 PM 时,它看起来像这样:

Re: Re: Re: Re: Re: Re: Re: Re: Hello World!

以下是执行此操作的脚本的相关部分:

                    | <a class="reply"
                    href="<?php echo wp_nonce_url( "?page=rwpm_send&recipient=$msg->sender&id=$msg->id&subject=Re: " . stripcslashes( $msg->subject ), 'rwpm-reply_inbox_msg_' . $msg->id ); ?>"><?php _e( 'Reply', 'pm4wp' ); ?></a>

所以我想调整脚本,使其仅在有回复时添加一个 Re:。我怎么做?我猜可能是一个 IF 语句检查是否已经存在 Re: ......

【问题讨论】:

    标签: php wordpress email message title


    【解决方案1】:

    所以,只有在没有时才添加“Re:”:

    | <a class="reply" href="<?php echo wp_nonce_url( "?page=rwpm_send&recipient=$msg->sender&id=$msg->id&subject=".(strpos($msg->subject, "Re:") === false ? "Re: " : ""). stripcslashes( $msg->subject ), 'rwpm-reply_inbox_msg_' . $msg->id ); ?>"><?php _e( 'Reply', 'pm4wp' ); ?></a>
    

    而且,当它只应该停留在开头时:

       | <a class="reply" href="<?php echo wp_nonce_url( "?page=rwpm_send&recipient=$msg->sender&id=$msg->id&subject=".(substr($msg->subject, 0, 3) != "Re:" ? "Re: " : ""). stripcslashes( $msg->subject ), 'rwpm-reply_inbox_msg_' . $msg->id ); ?>"><?php _e( 'Reply', 'pm4wp' ); ?></a>
    

    【讨论】:

    • 好吧,我很悲观。像“Blah BLAHRe:Blah blah”这样的主题怎么样。我觉得用户在破解代码方面往往非常机智。虽然您的代码可以修复检查 pos 为 0,但我会选择 @lafor 的正则表达式,因为它更干净。
    • @Blauesocke 您能否通过检查 pos 是否为 0 来更新您的解决方案?
    【解决方案2】:

    关于一个简单的正则表达式吗?

    $replysubject = preg_replace('/^(Re: )*/', 'Re: ', stripcslashes( $subject ));
    

    这将输出一个开头只有一个“Re:”的字符串,无论输入字符串中有多少个。

    在你的情况下:

    href="&lt;?php echo wp_nonce_url( "?page=rwpm_send&amp;recipient=$msg-&gt;sender&amp;id=$msg-&gt;id&amp;subject=" . $replysubject, 'rwpm-reply_inbox_msg_' . $msg-&gt;id ); ?&gt;"

    【讨论】:

    • 您能否通过在我的代码中添加您的解决方案来更新您的代码,我将能够将它添加到脚本中并进行测试运行。
    • 虽然我总是倾向于简化 OP 的工作,但这只是复制和粘贴的问题,并阅读正则表达式。事实上,它非常简单,可以帮助您处理其他事情
    • 我刚刚测试了这个,它有效,但是它没有添加消息标题?你的代码有错别字吗?
    猜你喜欢
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 2023-03-05
    • 2016-08-11
    • 2018-12-10
    • 2018-10-28
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多