問題描述
在 WordPress 文字編輯器中新增返回時,是否有辦法阻止 WordPress 自動插入<br> 標記。
我希望它的行為更像一個程式碼編輯器,我可以在這裡編寫程式碼,我喜歡什麼,使其易於閱讀。
我在編輯器中使用的程式碼是:
[one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third][one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third][one_third][team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"][custom_button url="#"]For more information[/custom_button][/team_member][/one_third]
我想像這樣構造它,這樣更容易閱讀和編輯:
[one_third]
[team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"]
[custom_button url="#"]For more information[/custom_button]
[/team_member]
[/one_third]
[one_third]
[team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"]
[custom_button url="#"]For more information[/custom_button]
[/team_member]
[/one_third]
[one_third]
[team_member image_url="team_member.jpg" name="Laser vision" role="WordPress Designer"]
[custom_button url="#"]For more information[/custom_button]
[/team_member]
[/one_third]
但是,如果這樣做會有隱形的<br> 標籤新增到帖子內容會弄亂我的頁面的佈局。
最佳解決方案
在許多情況下,shea 的答案並不理想:
-
你不想剝離
<br>, <p>等等的所有東西。你希望它作為 WP 視覺作曲家的預設行為,上述程式碼將被刪除 -
在許多情況下,它被認為是 「駭客核心」,因為這正在改變 WP 的預設核心行為 – 例如,這樣的事情不會傳遞給 ThemeForest
我可以看到你主要有與你的問題短碼。解決這個問題的正確方法是不要更改預設行為 (駭客核心),而只是過濾內容。所以只需要新增一個過濾器,並且在一個變數中傳遞你想要過濾的 shotrcodes 陣列,就像這樣:
function the_content_filter($content) {
$block = join("|",array("one_third", "team_member"));
$rep = preg_replace("/(<p>)?[($block)(s[^]]+)?](</p>|<br />)?/","[$2$3]",$content);
$rep = preg_replace("/(<p>)?[/($block)](</p>|<br />)?/","[/$2]",$rep);
return $rep;
}
add_filter("the_content", "the_content_filter");
內部的內容將被過濾,因此您的簡訊號將不含<br>, <p> 等,但其他內容部分 (例如使用者建立的 WP 編輯器中的標準文字) 仍然具有 WP 的完整功能。
參考文獻:
次佳解決方案
wpautop()功能為您的內容新增了<p> 和<br> 標籤,以保留換行符。如果您想自己新增這些標籤,那麼您可以將應用此功能的過濾器刪除到帖子內容:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
如果您想保留自動 paragaraph 建立 (插入<p> 標籤),並刪除其他<br> 標籤,您可以使用此程式碼:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
function wpse_wpautop_nobr( $content ) {
return wpautop( $content, false );
}
add_filter( 'the_content', 'wpse_wpautop_nobr' );
add_filter( 'the_excerpt', 'wpse_wpautop_nobr' );
如果您不確定該程式碼放在哪裡,請參閱 this link 。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。