WordPress 如何在文章和评论中插入代码

如果不使用插件的话,在文章中和评论中是无法插入一些 PHP、CSS、HTML、JS 等代码的,就算使用了cod…

Wordpress 如何在文章和评论中插入代码

如果不使用插件的话,在文章中和评论中是无法插入一些 PHP、CSS、HTML、JS 等代码的,就算使用了codepre标签也不行…因为 wordpress 自身有一个强大的 HTML 标签过滤系统,你插入的 html 标签会直接消失~~

.singlemiddle-banner{margin-left:auto;margin-right:auto;overflow: hidden;}

本文将介绍如何在文章及评论中使用code标签来插入代码。

/**
 * WordPress 如何在文章和评论中插入代码 - 龙笑天下
 * https://www.ilxtx.com/html-entities-of-code-fragments-in-posts-and-comments.html
 */
add_filter('pre_comment_content', 'lxtx_encode_code_in_posts_comments');
add_filter('the_content', 'lxtx_encode_code_in_posts_comments');
function lxtx_encode_code_in_posts_comments($source) {
  $encoded = preg_replace_callback('/<code>(.*?)</code>/ims',
  create_function(
    '$matches',
    '$matches[1] = preg_replace(
        array("/^[r|n]+/i", "/[r|n]+$/i"), "",
        $matches[1]);
      return "<code>" . esc_html( $matches[1] ) . "</code>";'
  ),
  $source);
  if ($encoded)
    return $encoded;
  else
    return $source;
}

代码改自《Automatically Escape HTML Entities of Code Fragments in Comments (WordPress) 》

将上面的代码加入 functions.php 中,然后使用 <code></code> 来插入代码即可!

其它参考文章及代码
1.如何在评论中插入图片:

WordPress 中如何允许非管理员用户在评论中插入图片-BG

WordPress 中如何允许非管理员用户在评论中插入图片

WordPress 中如何允许非管理员用户在评论中插入图片

今天匿名在评论里插入图片的时候,突然发现我插的图片被吞了…尴尬了,原来这么久以来我的插入图片这个按钮功能是“不起作用”的… 然后百度了下,果然有结果了:“在 WordPress 中,默认…

2.Replace Content in PRE Tags with HTML Entities

//replaces pre content with html entities
function pre_entities($matches) {
	return str_replace($matches[1],htmlentities($matches[1]),$matches[0]);
}
//to html entities;  assume content is in the "content" variable
$content = preg_replace_callback('/<pre.*?>(.*?)</pre>/imsu',pre_entities, $content);

3.Preprocess Comment Content in WordPress

// Manage comment submissions
function preprocess_new_comment($commentdata) {
	// Replace `code` with <code>code</code>
	$commentdata['comment_content'] = preg_replace("/`(.*)`/Um", "<code>$1</code>", $commentdata['comment_content']);

	// Ensure that code inside pre's is allowed
	preg_match_all("/<pre(.*?)>(.*)</pre>/", $commentdata['comment_content'], $pre_matches); // $2
	foreach($pre_matches as $match) {
		$immediate_match = str_replace(array('<', '>'), array('<', '>'), $match[2]);
		$commentdata['comment_content'] = str_replace($match[2], $immediate_match, $commentdata['comment_content']);
	}

	// Return
	return $commentdata;
}
add_action('preprocess_comment', 'preprocess_new_comment');
类别:WordPress函数讲解

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册