WordPress免插件实现代码高亮显示

2019-9-8 chenmo wordpress

Prismjs就可以让我们的wordpress不用装插件就完成代码高亮的功能,Prismjs是一个专门做代码高亮的开源项目,他的代码特点是精约、轻盈、快捷、高效、快速,而且支持127种程序语言的代码高亮。最主要的是Prismjs只需一个JS文件和一个CSS文件。使用Prismjs来完成代码高亮的时分,只需下载该文件放到网站,然后将这两个文件引进到页面上就可以了。

下面介绍WordPress实现代码高亮的办法

1、首先下载prism压缩包上传至主题根目录(底部下载);

2、然后复制以下代码添加到主题function.php文件下方即可。




//Wordpress免插件实现代码高亮
//Prism.js开始
 function add_prism() {
        wp_register_style(
            'prismCSS',
            get_stylesheet_directory_uri() . '/prism/prism.css' //自定义路径
         );
          wp_register_script(
            'prismJS',
            get_stylesheet_directory_uri() . '/prism/prism.js' //自定义路径
         );
        wp_enqueue_style('prismCSS');
        wp_enqueue_script('prismJS');
    }
add_action('wp_enqueue_scripts', 'add_prism');
//Prism.js结束
//编辑器添加快捷键
function appthemes_add_quicktags() {
?>
<script type="text/javascript">
QTags.addButton( 'codeHighlight', '代码高亮', '\n【pre class="line-numbers"】【code class="language-markup"】\n HTML代码\n【/code】【/pre】\n' );
QTags.addButton( 'php', 'php', '\n【pre class="line-numbers"】【code class="language-php"】\n PHP代码\n【/code】【/pre】\n' );
QTags.addButton( 'python', 'Python', '\n【pre class="line-numbers"】【code class="language-python"】\n Python代码\n【/code】【/pre】\n' );//修改此段【】为<>
</script>
<?php
}
add_action('admin_print_footer_scripts', 'appthemes_add_quicktags' );
//添加快捷键结束
//Pre标签内的HTML不转义
add_filter( 'the_content', 'pre_content_filter', 0 );
function pre_content_filter( $content ) {
    return preg_replace_callback( '|【pre.*】【code.*】(.*)【/code】【/pre】|isU' , 'convert_pre_entities', $content );
}//修改此段【】为<>
function convert_pre_entities( $matches ) {
    return str_replace( $matches[1], htmlentities( $matches[1] ), $matches[0] );
}
prism代码高亮.zip 


标签: 免插件 代码高亮

评论(0) 浏览(53)

利用 WordPress REST API 给 WordPress 做一个归档页面吧

2019-9-8 chenmo wordpress

代码

WordPress REST API 默认以 date (文章发布日期) 来排序文章输出,所以可以遍历全部文章,判断上下篇发布年份来按照年份归档文章


//获取文章列表
            axios.get('https://www.ouorz.com/wp-json/wp/v2/posts?per_page='+window.post_count) //默认以发布时间排序
             .then(response => {
                 this.posts = response.data
             })
             .then(() => {
                 var k = -1;
                 var i = 0;
                 for(i=0;i<(this.posts).length;i++){ //遍历所有文章
                     if( ((this.posts[i].date.split('T'))[0].split('-'))[0] !== this.last_year ){ //当前文章发布年与上一篇不同
                         this.posts_array[k += 1] = []; //初始化数组
                         this.posts_array[k]['posts'] = []; //初始化 posts 数组
                         this.posts_array[k]['year'] = parseInt(((this.posts[i].date.split('T'))[0].split('-'))[0]); //增加年份
                         this.posts_array[k]['posts'][(this.posts_array[k]['posts']).length] = this.posts[i]; //增加文章
                         this.last_year = ((this.posts[i].date.split('T'))[0].split('-'))[0]; //赋值当前文章发布年份
                     }else{ //发布年份与上一篇相同
                        this.posts_array[k]['posts'][(this.posts_array[k]['posts']).length] = this.posts[i]; //增加文章
                     }
                 }
                 this.loading = false;
            })

查询了 WordPress REST API 文档之后,发现每次请求的文章总数( 也就是 per_page 参数 )不可以超过 100,但是归档页面理应展示全部文章,于是需要在 function.php 增加以下钩子和函数拓宽这个限制

https://github.com/WP-API/WP-API/issues/2914

add_filter( 'rest_post_collection_params', 'my_prefix_change_post_per_page', 10, 1 );

function my_prefix_change_post_per_page( $params ) {
    if ( isset( $params['per_page'] ) ) {
        $count_posts = wp_count_posts();
        $params['per_page']['maximum'] = $count_posts->publish; //增加限制到当前文章总数
    }
    return $params;
}


标签: wordpress 页面 归档 REST API

评论(0) 浏览(39)

关闭wordpress自动更新和修订

2019-9-8 chenmo wordpress

屏蔽WP更新

编辑主题文件的functions.php,在靠前的地方把下面的代码粘贴进去

//隐藏管理后台帮助按钮和版本更新提示
function hide_help() {
	echo'<style type="text/css">#contextual-help-link-wrap { display: none !important; }  .update-nag{ display: none !important; } #footer-left, #footer-upgrade{ display: none !important; } #wp-admin-bar-wp-logo{display: none !important;}.default-header img{width:400px;}</style>';
}
add_action('admin_head', 'hide_help');
add_filter('pre_site_transient_update_core', create_function('$a', "return null;")); // 关闭核心提示
add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;")); // 关闭插件提示
add_filter('pre_site_transient_update_themes', create_function('$a', "return null;")); // 关闭主题提示
remove_action('admin_init', '_maybe_update_core'); // 禁止 WordPress 检查更新
remove_action('admin_init', '_maybe_update_plugins'); // 禁止 WordPress 更新插件
remove_action('admin_init', '_maybe_update_themes'); // 禁止 WordPress 更新主题

关闭修订

修改WP根目录下的wp的wp-config.php,在require_once(ABSPATH . 'wp-settings.php');之前插入

/** 禁用文章修订功能 */
define('WP_POST_REVISIONS', false);

/** 禁用自动保存功能 */
define('AUTOSAVE_INTERVAL', false);

标签: wordpress 自动 修订 更新

评论(0) 浏览(42)

wordpress 用sqlite数据库全新安装

2018-7-22 chenmo wordpress

wordpress一般都搭配mysql,安装比较简单。但想要用sqlite数据库,要费翻功夫了。


 首先到官网下载wordpress安装包解压到/var/www目录下


       http://cn.wordpress.org/


然后是下载sqlite插件


      http://wordpress.org/plugins/sqlite-integration/

把解压后的包放到wp-content/plugin/目录下


 再把包里面的db.php复制到wp-content目录下


 进入wordpress的根目录,把wp-config-sample.php重命名为wp-config.php


  编辑wp-config.php添加:


define('USE_MYSQL', false);

 运行并配置博客,开始你的wordpress博客之旅吧


标签: wordpress sqlite

评论(0) 浏览(525)

分享:WordPress根据分类调用文章模板

2014-9-22 chenmo wordpress

如果我们用WordPress做一个企业网站必然会遇到一个问题,新闻内容的页面和企业产品的页面的布局格式肯定是不一样的。如何实现这两者不同的文章类型调用不同的模板呢,今天我就跟大家分享一下如何根据分类调用文章模板。

第一步:建立一个single.php文件,如果你的模板目录已经有这个文件,可以将下面的一段代码内容替换原来的内容。


<?php

if(in_category('product') {
	include(TEMPLATEPATH . '/single-product.php');
}

else {
	include(TEMPLATEPATH . '/single-default.php');
}

?>


上面代码的意思就是,判断文章是否属于product的分类,如果是就调用product的文章模板,默认调用product的文章模板。

第二步:分别建立single-product.php和single-default.php文件,并调用不同的文章内容循环程序。以single-product.php为例子,single-product.php的内容见下面的代码:


		<div id="container">
			<div id="content" role="main">

			<?php get_template_part( 'loop', 'product' ); ?>

			</div><!-- #content -->
		</div><!-- #container -->


第三步:分别建立loop-product.php和loop-default.php文件,这两个文件就是针对不同的模板进行的文章内容布局。


其实这个是很简单的,只要研究透了原理,举一反三,可以实现一些更高级的功能。好了,今天就分享到这里了,如果还有疑问的话可以联系谭海波为你解答。

文章出处:http://tanhaibo.net/2014/04/entry-template.html

标签: wordpress 调用 模板 文章 分享 分类

评论(0) 浏览(1429)

Powered by emlog 湘ICP备13007859号 空间由景安网络赞助