前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自己动手写 WordPress 插件 2a:窗体化插件 a

自己动手写 WordPress 插件 2a:窗体化插件 a

作者头像
Denis
发布2023-04-15 10:55:02
2790
发布2023-04-15 10:55:02
举报
文章被收录于专栏:WordPress果酱WordPress果酱

上一节我们通过一个很简单并且很有意义的插件 WP-Sofa 给大家讲解了如何自己动手开始写插件,今天将和大家讲解如和窗体化这个插件,并推出我们的沙发二代。

首先,什么是窗体化(widgetizing)呢?简单的说,窗体化就是让侧边栏适合 Widget 这个插件(从 2.2 开始,WordPress 已经内置了 Widget),它能让你非常容易就能够重新整理侧边栏的模块,而不需要手工去修改代码。

立刻就会跑出第二个问题,主题不支持 Widget,怎么办?能怎么办,不懂代码的,换一个主题咯,懂的修改代码让它支持咯,如何修改?看文章:窗体化侧边栏

废话说完了,那我们开始我们今天的主题:窗体化你的插件。

首先,我们让插件能够支持 Widget 只是一个额外的功能,原有的手工调用的功能还是要保持。所以我们把原有的代码作如下改动:

把原有的sofa 这个函数的函数名修改为 get_sofa。 把最后的 echo output; 修改成 return output;。

然后创建一个新的 sofa 函数。如下:

代码语言:javascript
复制
function sofa(){
	$output = get_sofa();
	echo $output;
}

这样保证了原来的 sofa 函数还能自动调用。

下面我们开始 widget 这个插件:

首先了解下基本的 Widget 语法

代码语言:javascript
复制
<?php
function widget_myuniquewidget($args) {
       extract($args);
?>
       <?php echo $before_widget; ?>
       <?php echo $before_title . 'My Unique Widget' . $after_title; ?>
               Hello, World!
       <?php echo $after_widget; ?>
<?php
}
register_sidebar_widget('My Unique Widget', 'widget_myuniquewidget');
?>

上面的代码用用 register_sidebar_widget 注册函数自己之后,输出 widget 标题 'My Unique Widget' 及內容 'Hello, World!'。

只要把标题替换成自己的标题,然后把 'Hello, World!' 替换成自己的内容即可。

然后又从 WordPress Widgets 说明文档上知道:不要在插件导入之后执行任何代码,并使用 plugins_loaded 这个hook。从而得知 add_action 的对象是 plugins_loaded。

根据上面的分析,我们的 Sofa 的 widget 函数为:

窗体化插件 2。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档