Direttorju tal-Artikoli
- 1 Għaliex it-taqsima tal-kummenti ma tappoġġjax shortcodes?
- 2 Kif nista' nippermetti l-appoġġ ta' shortcode għall-kummenti?
- 3 Kodiċi biex jippermetti shortcodes tat-taqsima tal-kummenti b'mod sigur
- 4 l-aħjar prattiki
- 5 Verżjoni Mtejba Dinamikament: Interfaċċja tas-Settings tal-Backend (Tiftix + Gruppjar + Ħjiel tal-Frontend)
- 6 fi ftit kliem
在 WordPress Daħħal fit-taqsima tal-kummenti tal-artiklu [shortcode]Madankollu, ir-riżultat juri biss test sempliċi minflok l-effett mixtieq? Dan huwa fil-fatt il-mekkaniżmu awtomatiku ta' WordPress. Hawn taħt, se nanalizza sistematikament ir-raġunijiet u nipprovdi soluzzjoni kompluta.
Għaliex it-taqsima tal-kummenti ma tappoġġjax shortcodes?
Restrizzjonijiet awtomatiċi
Għal raġunijiet ta' sigurtà, WordPress ma jaħdimx awtomatikament fit-taqsima tal-kummenti.do_shortcode()Dan jipprevjeni lill-utenti milli jdaħħlu formoli, skripts, jew kontenut ieħor b'mod arbitrarju li jista' jaffettwa s-sigurtà tas-sit.Ambitu ta' applikazzjoni limitat
L-abbrevjazzjoni hija mfassla l-aktar għall-użu fil-kontenut tal-artiklu (the_contentDan jinkludi aġġeġġi jew plugins speċifiċi, filwaqt li t-taqsima tal-kummenti mhijiex appoġġjata awtomatikament.Interferenza awtomatika tal-ifformattjar
It-test tal-kumment se jkunwpautopŻid awtomatikament<p>和<br>It-tikketti, li jistgħu jkissru l-istruttura tas-sintassi tal-kodiċijiet qosra, u jagħmluhom mhux parseabbli.

Kif nista' nippermetti l-appoġġ ta' shortcode għall-kummenti?
Ippermetti shortcodes tal-kummenti
Dwar is-suġġettfunctions.phpŻid il-kodiċi li ġej mal-fajl jew mal-plugin tas-snippet tal-kodiċi tiegħek:add_filter('comment_text', 'do_shortcode');Dan se jwassal biex it-taqsima tal-kummenti tuża shortcodes.
Iċċekkja jekk il-plugin huwiex attivat.
Ħafna shortcodes jiġu minn plugins (bħal Contact Form 7 u WooCommerce). Jekk il-plugin ma jkunx attivat, is-shortcodes mhux se jaħdmu.Evita żbalji sintattiċi
Jekk jogħġbok ikkonferma li l-abbrevjazzjoni hija miktuba b'mod korrett, pereżempju:[shortcode attribute="value"]内容[/shortcode]Iċċekkja għal kunflitti fit-tema jew fil-plugin
Ibdel għat-tema default (bħal Twenty Twenty-Five), iddiżattiva kull plugin wieħed wieħed biex tittestja u tikkonferma jekk hemmx xi kunflitti li jikkawżaw li x-shortcode ma jaħdimx sew.ċara cache
Meta tuża plugins tal-caching jew CDNs, trid tnaddaf il-cache wara t-tiswija biex tara l-effett.
Kodiċi biex jippermetti shortcodes tat-taqsima tal-kummenti b'mod sigur
Biex jiġu evitati riskji għas-sigurtà, huwa possibbli li functions.php Żid l-eżempju sħiħ li ġej:
<?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);
Deskrizzjoni tal-kodiċi
- Ippermetti shortcodesL-ewwel linja
add_filter('comment_text', 'do_shortcode');Ippermetti l-appoġġ għal shortcode fit-taqsima tal-kummenti. - Kodiċijiet qosra ristretti:pass
$allowed_shortcodesId-definizzjonijiet tal-arrays jippermettu abbrevjazzjonijiet, pereżempjugallery,audio,video,contact-form-7,su_posts. - Immaniġġjar tas-sigurtàJekk l-utent idaħħal shortcode li mhux fil-lista permessa, il-kodiċi awtomatikament jiġi escaped għal test sempliċi biex jiġi evitat li jiġu eżegwiti shortcodes potenzjalment perikolużi.
l-aħjar prattiki
- Ħalli biss shortcodes meħtieġaPereżempju, fi preżentazzjonijiet jew formoli tal-midja, evita li tuża wisq shortcodes.
- Iċċekkja regolarment għal aġġornamenti tal-pluginKun żgur li l-plugin tas-sors tal-shortcode huwa sigur u affidabbli.
- Kombinazzjoni ta' plugins tal-caching u l-protezzjoniBiex tiġi evitata l-pressjoni fuq il-prestazzjoni kkawżata mir-rendering ta' shortcode.
Verżjoni Mtejba Dinamikament: Interfaċċja tas-Settings tal-Backend (Tiftix + Gruppjar + Ħjiel tal-Frontend)
Jekk trid aktar flessibbiltà, tista' tuża l-kodiċi mtejjeb li ġej:
- Elenka awtomatikament is-shortcodes irreġistrati kollha(Inklużi dawk ipprovduti minn plugins).
- Jappoġġja d-dħul ta' shortcodes apposta(bħal
)。 - kaxxa tat-tiftix:快速pożizzjoniAbbrevjazzjoni.
- Wirja raggruppataL-iggruppjar skont is-sors tal-plugin jagħmilha aktar intuwittiva.
- Permessi tar-RwolIl-kodiċijiet qosra fil-kummenti tal-amministratur biss se jiġu analizzati; il-kodiċijiet qosra fil-kummenti regolari tal-utent se juru l-messaġġ "Dan il-kodiċi qasir huwa disponibbli biss għall-amministraturi".
<?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);
fi ftit kliem
Is-sezzjonijiet tal-kummenti ta' WordPress ma janalizzawx shorthand awtomatikament għal raġunijiet ta' sigurtà u prestazzjoni. Tista' tuża [l-għodda tal-parsing] minflok. functions.php Żid filtru biex tippermetti shortcodes u għaqqdu mas-sigurtà.
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ L-artiklu "Raġunijiet u Soluzzjonijiet għal Kwistjonijiet ta' Parsing ta' Shortcode fit-Taqsima tal-Kummenti ta' WordPress" maqsum hawn jista' jkun ta' għajnuna għalik.
Merħba biex taqsam il-link ta' dan l-artikolu:https://www.chenweiliang.com/cwl-34132.html
