Directory artaigil
- 1 Carson nach eil an earrann bheachdan a’ toirt taic do chòdan goirid?
- 2 Ciamar as urrainn dhomh taic còd goirid a chomasachadh airson beachdan?
- 3 Còd gus còdan goirid earrann bheachdan a chomasachadh gu tèarainte
- 4 最佳实践
- 5 Tionndadh Leasaichte gu Dinimigeach: Eadar-aghaidh Roghainnean Cùil (Rannsachadh + Buidhneachadh + Molaidhean Aghaidh)
- 6 gu suim
Ann WordPress Cuir a-steach ann an earrann bheachdan an artaigil [shortcode]Ach, nach eil an toradh a’ taisbeanadh ach teacsa lom an àite a’ bhuaidh a tha thu ag iarraidh? Is e seo an dòigh-obrach bunaiteach aig WordPress. Gu h-ìosal, nì mi sgrùdadh siostamach air na h-adhbharan agus bheir mi seachad fuasgladh coileanta.
Carson nach eil an earrann bheachdan a’ toirt taic do chòdan goirid?
Cuingealachaidhean bunaiteach
Air adhbharan tèarainteachd, chan eil WordPress ag obair gu fèin-ghluasadach anns an earrann bheachdan.do_shortcode()Tha seo a’ cur casg air luchd-cleachdaidh bho bhith a’ cur foirmean, sgriobtaichean no susbaint eile a-steach gun fhiosta a dh’ fhaodadh buaidh a thoirt air tèarainteachd na làraich.Raon tagraidh cuibhrichte
Tha an giorrachadh air a dhealbhadh sa mhòr-chuid airson a chleachdadh ann an susbaint artaigil (the_contentTha seo a’ gabhail a-steach innealan no plugain sònraichte, agus chan eil taic ri fhaighinn airson an earrann bheachdan gu bunaiteach.Bacadh cruth fèin-ghluasadach
Bidh teacsa a’ bheachdwpautopCuir ris gu fèin-ghluasadach<p>和<br>Tagaichean, a dh’ fhaodadh structar co-chàradh chòdan goirid a bhriseadh, gan dèanamh do-dhèanta a pharsadh.

Ciamar as urrainn dhomh taic còd goirid a chomasachadh airson beachdan?
Cuir còdan goirid air dòigh airson beachdan
Air a’ chuspairfunctions.phpCuir an còd a leanas ris an fhaidhle no ris a’ plugan criomag còd agad:add_filter('comment_text', 'do_shortcode');Bheir seo air an earrann bheachdan còdan goirid a chleachdadh.
Thoir sùil a bheil am plugan air a ghnìomhachadh.
Tha mòran de na còdan goirid a’ tighinn bho plugins (leithid Contact Form 7 agus WooCommerce). Mura h-eil am plugan air a chomasachadh, cha bhith na còdan goirid ag obair.Seachain mearachdan co-chàradh
Dearbhaich gu bheil an giorrachadh sgrìobhte gu ceart, mar eisimpleir:[shortcode attribute="value"]内容[/shortcode]Thoir sùil airson còmhstri eadar cuspairean no plugins
Gluais chun chuspair bunaiteach (leithid Twenty Twenty-Five), cuir dheth gach plugan aon às dèidh a chèile gus deuchainn a dhèanamh agus dearbhadh a bheil còmhstri sam bith ann a dh’ adhbhraicheas fàilligeadh anns a’ chòd ghoirid.tasgadan soilleir
Nuair a bhios tu a’ cleachdadh plugins tasgadan no CDNan, feumaidh tu an tasgadan a ghlanadh às dèidh an càraidh gus a’ bhuaidh fhaicinn.
Còd gus còdan goirid earrann bheachdan a chomasachadh gu tèarainte
Gus cunnartan tèarainteachd a sheachnadh, tha e comasach functions.php Cuir ris an eisimpleir slàn a leanas:
<?php
// 在评论区启用简码解析
add_filter('comment_text', 'do_shortcode');
// 限制允许的简码列表
function safe_comment_shortcodes($content) {
// 定义允许的简码(加入 su_posts)
$allowed_shortcodes = array('gallery', 'audio', 'video', 'contact-form-7', 'su_posts');
// 遍历评论内容中的简码
return preg_replace_callback('/\[(\w+)([^\]]*)\]/', function($matches) use ($allowed_shortcodes) {
$shortcode = $matches[1];
// 如果简码在允许列表中,正常解析
if (in_array($shortcode, $allowed_shortcodes)) {
return do_shortcode($matches[0]);
}
// 否则直接输出原始文本,避免执行
return esc_html($matches[0]);
}, $content);
}
add_filter('comment_text', 'safe_comment_shortcodes', 9);
tuairisgeul còd
- Cuir còdan goirid an comasA’ chiad loidhne
add_filter('comment_text', 'do_shortcode');Cuir taic ri còdan goirid an gnìomh anns an earrann bheachdan. - Còdan Goirid Cuingealaichte: pas
$allowed_shortcodesLeigidh mìneachaidhean sreathan le giorrachaidhean, mar eisimpleirgallery,audio,video,contact-form-7,su_posts. - Làimhseachadh sàbhailteachdMa chuireas an neach-cleachdaidh còd goirid a-steach nach eil air an liosta cheadaichte, thèid an còd a thionndadh gu teacsa lom gu fèin-ghluasadach gus casg a chuir air còdan goirid a dh’ fhaodadh a bhith cunnartach a chur an gnìomh.
最佳实践
- Na leig ach còdan goirid riatanachMar eisimpleir, ann an taisbeanaidhean no foirmean nam meadhanan, seachain cus chòdan goirid a chleachdadh.
- Thoir sùil gu cunbhalach airson ùrachaidhean plugainDèan cinnteach gu bheil am plugan tùsail còd goirid sàbhailte agus earbsach.
- A’ cothlamadh plugins tasgadan is dìonGus an cuideam coileanaidh air adhbhrachadh le bhith a’ lìbhrigeadh còd goirid a sheachnadh.
Tionndadh Leasaichte gu Dinimigeach: Eadar-aghaidh Roghainnean Cùil (Rannsachadh + Buidhneachadh + Molaidhean Aghaidh)
Ma tha thu ag iarraidh barrachd sùbailteachd, faodaidh tu an còd leasaichte a leanas a chleachdadh:
- Liostaich gu fèin-ghluasadach na còdan goirid clàraichte uile(A’ gabhail a-steach an fheadhainn a tha air an toirt seachad le plugins).
- A’ toirt taic do bhith a’ cur a-steach còdan goirid gnàthaichte(mar
). - bogsa rannsachaidhluathSuidheachadhGiorrachadh.
- Taisbeanadh buidhneichteTha buidhnean a rèir stòr plugan ga dhèanamh nas intuitive.
- Ceadan DreuchdCha tèid ach còdan goirid ann am beachdan rianadair a pharsadh; nochdaidh còdan goirid ann am beachdan cleachdaiche àbhaisteach an teachdaireachd “Chan eil an còd goirid seo ri fhaighinn ach do rianadairean”.
<?php
// 添加后台菜单
function cwl_shortcode_settings_menu() {
add_options_page(
'评论简码设置',
'评论简码设置',
'manage_options',
'cwl-shortcode-settings',
'cwl_shortcode_settings_page'
);
}
add_action('admin_menu', 'cwl_shortcode_settings_menu');
// 注册设置
function cwl_register_shortcode_settings() {
register_setting('cwl_shortcode_settings_group', 'cwl_allowed_shortcodes');
register_setting('cwl_shortcode_settings_group', 'cwl_custom_shortcodes');
}
add_action('admin_init', 'cwl_register_shortcode_settings');
// 设置页面内容
function cwl_shortcode_settings_page() {
global $shortcode_tags;
$allowed = get_option('cwl_allowed_shortcodes', array());
$custom = get_option('cwl_custom_shortcodes', array());
?>
<div class="wrap">
<h1>评论区简码设置</h1>
<form method="post" action="options.php">
<?php settings_fields('cwl_shortcode_settings_group'); ?>
<h2>搜索简码</h2>
<input type="text" id="cwl_shortcode_search" placeholder="输入简码关键字..." style="width:300px;">
<h2>已注册简码(按插件来源分组)</h2>
<p>勾选允许在评论区执行的简码:</p>
<div id="cwl_shortcode_list">
<?php
// 按插件来源分组
$groups = array();
foreach ($shortcode_tags as $tag => $callback) {
$source = is_array($callback) ? get_class($callback[0]) : (is_object($callback) ? get_class($callback) : '主题/未知来源');
$groups[$source][] = $tag;
}
foreach ($groups as $source => $tags) {
echo "<h3>" . esc_html($source) . "</h3>";
foreach ($tags as $tag) {
?>
<label class="cwl_shortcode_item">
<input type="checkbox" name="cwl_allowed_shortcodes[]" value="<?php echo esc_attr($tag); ?>" <?php checked(in_array($tag, $allowed)); ?>>
<?php echo esc_html($tag); ?>
</label><br>
<?php
}
}
?>
</div>
<h2>自定义简码</h2>
<p>输入额外允许的简码(用逗号分隔):</p>
<textarea name="cwl_custom_shortcodes" rows="3" cols="50"><?php echo esc_textarea(implode(',', (array)$custom)); ?></textarea>
<?php submit_button(); ?>
</form>
</div>
<script>
// 简码搜索功能
document.getElementById('cwl_shortcode_search').addEventListener('keyup', function() {
var keyword = this.value.toLowerCase();
document.querySelectorAll('.cwl_shortcode_item').forEach(function(item) {
var text = item.textContent.toLowerCase();
item.style.display = text.indexOf(keyword) > -1 ? '' : 'none';
});
});
</script>
<?php
}
// 评论区简码过滤(结合角色权限 + 前端提示)
function cwl_safe_comment_shortcodes($content) {
$allowed_shortcodes = get_option('cwl_allowed_shortcodes', array());
$custom_shortcodes = get_option('cwl_custom_shortcodes', array());
$allowed_shortcodes = array_merge($allowed_shortcodes, (array)$custom_shortcodes);
return preg_replace_callback('/\[(\w+)([^\]]*)\]/', function($matches) use ($allowed_shortcodes) {
$shortcode = $matches[1];
// 管理员可解析简码
if (current_user_can('manage_options')) {
if (in_array($shortcode, $allowed_shortcodes)) {
return do_shortcode($matches[0]);
}
return esc_html($matches[0]);
} else {
// 普通用户提示信息
if (in_array($shortcode, $allowed_shortcodes)) {
return '<span style="color:red;">此简码仅管理员可用</span>';
}
return esc_html($matches[0]);
}
}, $content);
}
add_filter('comment_text', 'cwl_safe_comment_shortcodes', 9);
gu suim
Chan eil earrannan bheachdan WordPress a’ dèanamh parsadh air giorrachaidhean gu bunaiteach airson adhbharan tèarainteachd agus coileanaidh. Faodaidh tu [an inneal parsaidh] a chleachdadh na àite. functions.php Cuir criathrag ris gus còdan goirid a chomasachadh agus a chur còmhla ri tèarainteachd.
An dòchas blog Chen Weiliang ( https://www.chenweiliang.com/ Dh’fhaodadh an artaigil “Adhbharan agus fuasglaidhean airson duilgheadasan mion-sgrùdaidh còd goirid ann an earrann bheachdan WordPress” a chaidh a cho-roinn an seo a bhith feumail dhut.
Fàilte gus ceangal an artaigil seo a cho-roinn:https://www.chenweiliang.com/cwl-34132.html
