2013-01-14 23 views
0

我使用一個私人消息腳本,它在每次回覆時向消息主題添加一個Re:。不幸的是,如果有一個以上的答覆相同的消息,它增加了一個Re:,所以在時間的幾個項目經理進行了交流,它看起來像這樣:在回覆中只給消息主題添加一個「Re:」

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: ...

回答

2

因此,添加 「回覆:」 只有當不存在:

| <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> 
+2

嗯,我很悲觀。那麼像「Blah BLAHRe:Blah blah」這樣的話題呢。我覺得用戶在破解代碼方面往往很機智。雖然你的代碼可以固定檢查pos是0,但我會選擇@ lafor的正則表達式,因爲它更乾淨。 – Korcholis

+0

@Blauesocke您可以通過檢查pos是否爲0來更新您的解決方案嗎? –

+0

是的,已經做到了。應該管用。 :-) –

2

關於一個簡單的正則表達式?

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

這將輸出只有一個字符串「回覆:」一開始,不管有多少人是在輸入字符串。

你的情況:

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

+1

您可以通過在我的代碼中添加您的解決方案來更新您的代碼,我將能夠將它添加到sc撕裂並進行測試運行。 –

+0

雖然我總是傾向於放鬆OP的工作,但它只是複製和粘貼的問題,並閱讀正則表達式。事實上,這是非常簡單的,可以幫助你的其他東西 – Korcholis

+0

我剛剛測試過,它的工作,但是,它沒有添加消息標題?你的代碼中有錯字嗎? –