笔者在添加转载声明的时候,用到一款插件:MyCopyRight,其效果正如你在本站文章内容结束后看到的转载声明一样。但是发现这个插件在单独建的页面中也有加载出来。可是我只想这个版权声明出现在文章的下方,而非所有页面的下方,但这款插件没有后台设置,于是这就要修改插件的代码了。
插件代码如下:
// for add to content ...
function myCopyRight($outer){
if(!is_singular()){ return $outer; }
global $post;
$pName = $post->post_title;
$pHref = get_permalink($post->ID);
$outer .= "\n<!-- Begin myCopyRight -->\n";
$outer .= '<link rel="stylesheet" href="'.WP_PLUGIN_URL.'/'.dirname(plugin_basename(__FILE__)).'/myCopyRight.css?v=5">';
$outer .= '<div id="myCopyRight">';
$outer .= '<p>本文链接:<a href="'. $pHref .'" rel="bookmark" title="本文固定链接 '. $pHref .'">'. $pName.'</a></p>';
$outer .= '<p>转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:<a href="'.get_settings('home').'">'.get_bloginfo('name').'.com</a>,谢谢!^_^</p>';
$outer .= '<br clear="all"></div>';
$outer .= "\n<!-- End of myCopyRight -->\n";
return $outer;
}
add_filter('the_content', 'myCopyRight');
笔者不是程序员,但是凭着这几年研究wordpress建站,和程序员朋友的指导下,对代码也算是略懂了。再者有百度和Google这两位老师,可以看得出第三行" if(!is_singular()){ return $outer; } "这段代码是个判断句,如果是singular则输出下方代码的内容。那么这个is_singular就是关键了。
简单的认为is_sigular()相当于is_single()||is_page()||is_attachment()没有什么大问题。也就是说,有is_single()||is_page()的地方,都可以替换成is_singular()但是其实上述这种理解不是太准确。来比较一下is_single()与is_sigular()的文档。is_single()是可以加参数的。参数可以是post_id,post_slug,post_title。
那么我把is_singular替换成了is_single,这样wordpress判断是文章的页面下方才会加载,而普通的页面下方就不会加载这个转载声明了。
同理,如果用到某些分享按钮的插件、收藏按钮,或者自己开发插件,懒得做后台的时候也可以区分文章,和页面是否加载内容。对于新手来说这些东西应该有用,如有什么地方说的不对,请高手指点。
附:WordPress中一些常见的判断函数
is_home() : 是否为主页
is_single() : 是否为内容页(Post)
is_page() : 是否为内容页(Page)
is_category() : 是否为Category/Archive页
is_tag() : 是否为Tag存档页
is_date() : 是否为指定日期存档页
is_year() : 是否为指定年份存档页
is_month() : 是否为指定月份存档页
is_day() : 是否为指定日存档页
is_time() : 是否为指定时间存档页
is_archive() : 是否为存档页
is_search() : 是否为搜索结果页
is_404() : 是否为 “HTTP 404: Not Found” 错误页
is_paged() : 主页/Category/Archive页是否以多页显示
is_singular() : 相当于is_single()||is_page()||is_attachment()
本文部分内容参考:胖子马博客 、 Gimhoy's Blog
本文由 Qyet 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jan 11, 2020 at 01:36 pm