1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 给WordPress子比主题(zibll)添加文章来源

给WordPress子比主题(zibll)添加文章来源

时间:2022-05-24 11:51:54

相关推荐

给WordPress子比主题(zibll)添加文章来源

前言

WordPress是一款非常优秀的的博客web程序,尽管它给人的印象就是一个博客网站程序,但实际上通过适当的二次开发可以实现很多需求,基于它,可以开发大多数的企业网站。因此有非常多的知名企业的官网都是基于它创建的,而且它也有一大批开发者的支持,因此相关的资源就多得多了。

这里要讲的就是一个我最近在分享资源的过程发现的问题:因为是个人网站,需要在网站中引用转载部分第三方的文章,需要比较严谨地标注,一个很好的流程就是在发布文章的时候可以自定义文章的来源,而zibll主题本身是没有的。

那么有什么方法来增加呢?这次,罗先森博客采用了一个非常简便的方法,当然这也其实是在别人种好的树下乘凉了,因此使用QUX主题中的一段代码

第一步

在QUX主题设置文件, 主题根目录下的options.php,找到以下代码

/*给子比主题加上文章来源*/

$options[] = array(

ame =>__(文章来源, haoui),

id =>post_from_s,

ype =>"checkbox",

std =>true,

desc =>__(开启, haoui));

$options[] = array(

id =>post_from_h1,

std =>__(来源:, haoui),

desc =>__(来源显示字样, haoui),

ype => ext);

$options[] = array(

id =>post_from_link_s,

ype =>"checkbox",

std =>true,

desc =>__(来源加链接, haoui));

将这段代码添加到zibll子比主题中的主题设置文件 主题根目录下的options.php

我们要在这个下面添加 直接搜索“文章页显示”

找到最后一段功能 加入以上代码 实现图如下

第二步

找到QUX主题中的 functions-admin.php 这个文件在QUX主题中的func文件夹下面 找到以下代码

/*

* post meta from 文章来源

* ====================================================

*/

$postmeta_from = array(

array(

"name" =>"fromname_value",

"std" =>"",

"title" =>__(来源名, haoui).:

),

array(

"name" =>"fromurl_value",

"std" =>"",

"title" =>__(来源网址, haoui).:

)

);

if(_pz(post_from_s)){

add_action(admin_menu, \_postmeta_from_create);

add_action(save_post, \_postmeta_from_save);

}

function_postmeta_from(){

global $post, $postmeta_from;

foreach($postmeta_from as $meta_box){

$meta_box_value = get_post_meta($post->ID, $meta_box[ ame], true);

if($meta_box_value == "")

$meta_box_value = $meta_box[std];

echo<p>.$meta_box[ itle].</p>;

echo <p><input type="text" style="width:98%" value=".$meta_box_value." name=".$meta_box[ ame]."></p>;

}

echo <input type="hidden" name="post_newmetaboxes_noncename" id="post_newmetaboxes_noncename" value=".wp_create_nonce(plugin_basename(__FILE__))." />;

}

function_postmeta_from_create(){

global $theme_name;

if(function_exists(add_meta_box)){

add_meta_box(postmeta_from_boxes, __(文章来源, haoui), \_postmeta_from, post, ormal, high);

}

}

//用于保存主题设置

function_postmeta_from_save( $post_id ){

global $postmeta_from;

if( !wp_verify_nonce(isset($_POST[post_newmetaboxes_noncename]) ? $_POST[post_newmetaboxes_noncename]:\, plugin_basename(__FILE__)))

return;

if( !current_user_can(edit_posts, $post_id ))

return;

foreach($postmeta_from as $meta_box){

$data = $_POST[$meta_box[ ame]];

if(get_post_meta($post_id, $meta_box[ ame]) == "")

add_post_meta($post_id, $meta_box[ ame], $data, true);

elseif($data != get_post_meta($post_id, $meta_box[ ame], true))

update_post_meta($post_id, $meta_box[ ame], $data);

elseif($data == "")

delete_post_meta($post_id, $meta_box[ ame], get_post_meta($post_id, $meta_box[ ame], true));

}

}

这是添加字段以及保存主设置功能

将上面代码添加到子比主题中的 functions-theme.php 中

要特别注意画框的位置 QUX里面是_hui函数 zibll子比主题里面的是 _pz 函数

效果图

第三步

后台功能全部实现后 开始实现前台功能

前台功能我准备增加在文章的点赞后面

看到这里是一个ICON图标 我们找一个链接的 图标 由于罗先森博客用了 阿里的icon图标库 具体教程百度有

//复制他的代码 做备用

<svg class=“icon” aria-hidden=“true”><use xlink:href=“icon-caidan”></use></svg>

icon-caidan

然后在子比主题functions/functions.php 文件中增加以下代码 方便做一个判断

//增加以下代码方便调用

functionmo_get_post_from($pid=\, $prevtext=\){

if( !_pz(post_from_s)){

return;

}

if( !$pid ){

$pid = get_the_ID();

}

$fromname = trim(get_post_meta($pid, "fromname_value", true));

$fromurl = trim(get_post_meta($pid, "fromurl_value", true));

$from = \;

if( $fromname ){

if( $fromurl &&_pz(post_from_link_s)){

$from = <a href=".$fromurl." target="_blank" rel="external nofollow">.$fromname.</a>;

}else{

$from = $fromname;

}

}

return $from;

}

后找到子比主题的 获取文章meta标签 的函数中 增加判断代码

//判断文章来源字段是否为空,空则输出原创

if(mo_get_post_from()){

$meta .=<item font-size: 13px;""><a data-toggle="tooltip" title="._pz(post_from_h1)."><svg class="icon" aria-hidden="true"><use xlink:href="#icon-caidan"></use></svg></a>. mo_get_post_from().</item>;

}else{

$meta .=<item font-size: 13px;""><a data-toggle="tooltip" title="._pz(post_from_h1)."><svg class="icon" aria-hidden="true"><use xlink:href="#icon-yuanchuang"></use></svg></a>原创</item>;

}

完成后我们来检查下功能是否可以完美实现

关闭后 前台显示

功能正常 试一下 没有填写来源的 则显示本站原创

版权声明 罗先森博客原创

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。