wordpress建站——已登录的用户查看文章内容的实现方法。

转载原文:https://zhan.leiue.com/members-only-shortcodes.html

网站的注册用户是最有价值的访问者,这些人都是忠实的访客,我们应该奖励他们。其中一个奖励的措施,就是给注册用户分享最新的优质内容。也就是说,可以在某些文章中隐藏部分优质的内容,要求访问登录后才可以查看,这也是鼓励用户注册网站的方法之一。下面就来说说如何实现这个功能。

我们都知道,WordPress 有一个很棒的功能——简码(shortcode),我们可以利用简码来实现。关于简码,不熟悉的朋友可以先阅读。

下面就是我们的代码示例,你可以添加到一个插件中,或者添加到主题的 functions.php中


1
2
3
4
5
6
7
8
//WordPress 只允许已登录的用户查看文章内容
add_shortcode( 'members_only', 'members_only_shortcode' );
function members_only_shortcode( $atts, $content = null ){
    if ( is_user_logged_in() && !empty( $content ) && !is_feed() ){
        return $content;
    }
    return '<blockquote><p>温馨提示:本处有隐藏内容! <a href="'.wp_login_url( get_permalink() ).'">登录</a> 后即可查看!</p></blockquote>';//此处根据需要修改
}

在上面的代码中,我们注册了一个简码 【members_only】 ,在简码的函数中,我们使用了 is_user_logged_in() 函数来判断当前访问者是否登录,同时使用 !empty( $content ) 确保内容不为空,使用 !is_feed() 排除在RSS订阅中输出。

这样一来,我们可以在文章中使用简码添加内容:


1
2
3
[members_only]
这里的内容只为已登录的用户显示
[/members_only]

如果当前访问者没有登录,就显示“温馨提示:本处有隐藏内容!登录后即可查看!”,反之,则显示添加的内容“这里的内容只为已登录的用户显示”。

需要注意的是,你必须确保上面的函数代码不要被删除,否则所有简码包含的内容都会直接显示出来哦!

效果如下:

温馨提示:本处有隐藏内容! 登录 后即可查看!

wordpress代码高亮——CodeColorer插件

CodeColorer是一款wordpress下的代码高亮插件,支持语言广泛,有多种风格可以选择,另外也可以定义自己风格,代码高亮效果见页面:http://wordpress.org/extend/plugins/codecolorer/screenshots/。本文简单介绍一下CodeColorer的使用方法。1、安装进入 wordpress后,选择左侧:插件–>添加插件 进入安装插件页面。关键词输入CodeColorer,然后点搜索。在搜索结果里选择第一项:CodeColorer,目前版本是0.9.8,在你的搜索结果里可能不是第一项,不过注意名称全称就是CodeColorer。点击右侧安装。弹出新的界面,安装就可以。2、设置安装后在插件–>已安装 下,就会看到我们刚安装的CodeColorer插件,点击名称下方的启用来启用这个插件。我们还可以在设置–>CodeColorer页,进行一些个性化的设置,这个很简单,看一下就明白了。3、使用CodeColorer支持的语言有:abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm, asp, autoit, avisynth, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, cil, cmake, cobol, cpp-qt, cpp, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang, fo, fortran, freebasic, genero, gettext, glsl, gml, gnuplot, groovy, haskell, hq9plus, html4strict, idl, ini, inno, intercal, io, java, java5, javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc, modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml-brief, ocaml, oobas, oracle11, oracle8, pascal, per, perl, php-brief, php, pic16, pixelbender, plsql, povray, powershell, progress, prolog, properties, providex, python, qbasic, rails, rebol, reg, robots, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm, text, thinbasic, tsql, typoscript, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xml, xorg_conf, xpp, yaml, z80.使用时,将编辑器切换到HTML模式,现在叫文本模式,而不是可视化。在想要插入代码的地方,输入以下代码:<code lang=”php”>echo ‘This is php code’ ;</code>

效果:

1
echo 'This is php code' ;