wordpress函数调用(wordpress 函数)

WordPress,作为全球最受欢迎的博客平台和内容管理系统,拥有丰富的插件和主题,为网站开发者提供了强大的功能。而WordPress函数调用,则是实现这些功能的关键。本文将带领大家从入门到精通,全面解析WordPress函数调用。

一、WordPress函数调用入门

1.1 什么是WordPress函数调用

WordPress函数调用,即使用WordPress提供的函数来实现特定的功能。这些函数通常位于WordPress的核心文件、主题文件或插件文件中。

1.2 WordPress函数分类

WordPress函数主要分为以下几类:

  • 数据库操作函数:用于查询、更新、删除数据库数据。
  • 内容生成函数:用于生成文章、评论、分类等。
  • 用户操作函数:用于处理用户登录、注册、权限等。
  • 主题和插件相关函数:用于自定义主题、插件开发等。

二、WordPress常用函数调用

2.1 数据库操作函数

以下是一些常用的数据库操作函数:

函数名 作用
wp_query 根据条件查询数据库,返回查询结果集
wp_insert_post 添加一篇新文章到数据库
wp_update_post 更新数据库中的文章信息
wp_delete_post 删除数据库中的文章

2.2 内容生成函数

以下是一些常用的内容生成函数:

函数名 作用
the_title 输出文章标题
the_content 输出
the_excerpt 输出文章摘要
get_the_date 获取文章发布日期

2.3 用户操作函数

以下是一些常用的用户操作函数:

函数名 作用
wp_login 用户登录
wp_logout 用户登出
is_user_logged_in 判断用户是否已登录
current_user_can 判断当前用户是否有权限执行某个操作

2.4 主题和插件相关函数

以下是一些常用的主题和插件相关函数:

函数名 作用
get_template_directory 获取当前主题目录路径
get_template_directory_uri 获取当前主题目录URL
include_template 包含主题文件
plugin_dir_url 获取插件目录URL

三、WordPress函数调用技巧

3.1 避免直接操作数据库

直接操作数据库容易导致安全问题,建议使用WordPress提供的函数进行操作。

3.2 适当使用缓存

WordPress函数调用会消耗服务器资源,适当使用缓存可以提高网站性能。

3.3 熟悉WordPress函数文档

WordPress函数文档详细介绍了每个函数的用法和参数,是学习和使用函数的重要参考。

四、总结

WordPress函数调用是WordPress开发中不可或缺的一部分。通过本文的学习,相信大家对WordPress函数调用有了更深入的了解。在实际开发过程中,不断积累经验,熟练掌握WordPress函数调用,将有助于提高网站开发效率。

(以下为思考痕迹,仅供参考

在WordPress函数调用的过程中,我们不仅要学会使用各种函数,还要学会灵活运用。比如,在开发插件时,我们需要根据需求选择合适的函数,并注意函数之间的关联。随着WordPress版本的更新,部分函数可能会被废弃或修改,因此我们需要关注WordPress官方文档,了解最新的函数调用方法。

WordPress函数调用是一项重要的技能,希望大家在学习和实践过程中,不断积累经验,提高自己的开发水平。

如何在WordPress上正确加载Javascript和CSS

现在许多WordPress网站都开始讲要正确加载 jQuery、Javascript和 CSS到你的WordPress网站。今天来一篇更详细讲解如何使用WordPress官方推荐的方式来加载脚本/ CSS的文章。

有两种常用的 add_action钩子可以加载脚本和CSS到WordPress:

init:确保始终为您的网站头部加载脚本和CSS(如果使用home.php,index.php或一个模板文件),以及其他“前端”文章、页面和模板样式。

wp_enqueue_scripts:“适当”的钩子方法,并不总是有效的,根据你的WordPress设置。

下面的所有例子都在WordPress多站点模式、WordPress 3.4.2通过测试(如果不支持后续版本,请留言告知)

加载外部 jQuery库和主题自定义的脚本、样式

下面这个例子在 add_action钩子中使用 init。使用 init有两个原因,一是因为我们正在注销WordPress默认的jQuery库,然后加载谷歌的jQuery库;二是确保在WordPress的头部就加载脚本和CSS。

使用if(!is_admin())是为了确保这些脚本和css只在前端加载,不会再后台管理界面加载。

/** Google jQuery Library, Custom jQuery and CSS Files*/

function myScripts(){

wp_register_script('google',';);

wp_register_script('default', get_template_directory_uri().'/jquery.js');

wp_register_style('default', get_template_directory_uri().'/style.css');

if(!is_admin()){/** Load Scripts and Style on Website Only*/

wp_deregister_script('jquery');

wp_enqueue_script('google');

wp_enqueue_script('default');

wp_enqueue_style('default');

}

}

add_action('init','myScripts');

加载WP默认 jQuery库和主题自定义的脚本、样式

第3行:使用 array(‘jquery’)是为了告诉 WordPress这个 jquery.js是依赖WordPress的jQuery库文件,从而使 jquery.js在WordPress jQuery库文件后加载。

/** Add Custom jQuery and CSS files to a Theme*/

function myScripts(){

wp_register_script('default', get_template_directory_uri().'/jquery.js', array('jquery'),'');

wp_register_style('default', get_template_directory_uri().'/style.css');

if(!is_admin()){/** Load Scripts and Style on Website Only*/

wp_enqueue_script('default');

wp_enqueue_style('default');

}

}

add_action('init','myScripts');

加载 print.css到你的WordPress主题

第 3行:最后的‘print’是媒体屏幕调用,确保 print.css在网站的打印机中的文件加载时才加载。

/** Adding a Print Stylesheet to a Theme*/

function myPrintCss(){

wp_register_style('print', get_template_directory_uri().'/print.css','','','print');

if(!is_admin()){/** Load Scripts and Style on Website Only*/

wp_enqueue_style('print');

}

}

add_action('init','myPrintCss');

使用 wp_enqueue_scripts替换 init

如果你要在文章或页面加载唯一的脚本,那就应该使用 wp_enqueue_scripts替换 init。使用 wp_enqueue_scripts仅仅只会在前台加载脚本和CSS,不会在后台管理界面加载,所以没必要使用!is_admin()判断。

使用 is_single()只在文章加载脚本或CSS

第 3行的#替换为文章的ID就可以让脚本和css只加载到那篇文章。当然,如果直接使用 is_single()(不填ID),就会在所有文章加载脚本和CSS。

/** Adding Scripts To A Unique Post*/

function myScripts(){

if( is_single(#)){/** Load Scripts and Style on Posts Only*/

/** Add jQuery and/or CSS Enqueue*/

}

}

add_action('wp_enqueue_scripts','myScripts');

使用 is_page()只在页面加载脚本或CSS

第 3行的#替换为页面的ID就可以让脚本和css只加载到那个页面。当然,如果直接使用 is_single()(不填ID),就会在所有页面加载脚本和CSS。

/** Adding Scripts To A Unique Page*/

function myScripts(){

if( is_page(#)){/** Load Scripts and Style on Pages Only*/

/** Add jQuery and/or CSS Enqueue*/

}

}

add_action('wp_enqueue_scripts','myScripts');

使用 admin_enqueue_scripts加载脚本到后台

这个例子将在整个后台管理界面加载脚本和CSS。这个方法不推荐用在插件上,除非插件重建了整个后台管理区。

第 10行使用 admin_enqueue_scripts替换了 init或wp_enqueue_scripts

第 5、6行,如果你要自定义后台管理区,你可以需要禁用默认的WordPress CSS调用。

/** Adding Scripts To The WordPress Admin Area Only*/

function myAdminScripts(){

wp_register_script('default', get_template_directory_uri().'/jquery.js', array('jquery'),'');

wp_enqueue_script('default');

//wp_deregister_style('ie');/** removes ie stylesheet*/

//wp_deregister_style('colors');/** disables default css*/

wp_register_style('default', get_template_directory_uri().'/style.css', array(),'','all');

wp_enqueue_style('default');

}

add_action('admin_enqueue_scripts','myAdminScripts');

加载脚本和CSS到WordPress登录界面

第 6行:我无法弄清楚如何在在登录页面注册/排序 CSS文件,所以这行手动添加样式表。

第 10-14行:用来移除WordPress默认的样式表。

/** Adding Scripts To The WordPress Login Page*/

function myLoginScripts(){

wp_register_script('default', get_template_directory_uri().'/jquery.js', array('jquery'),'');

wp_enqueue_script('default');

?>

<link rel='stylesheet' id='default-css' href='<?php echo get_template_directory_uri().'/style.css';?>' type='text/css' media='all'/>

<?php}

add_action('login_enqueue_scripts','myLoginScripts');

/** Deregister the login css files*/

function removeScripts(){

wp_deregister_style('wp-admin');

wp_deregister_style('colors-fresh');

}

add_action('login_init','removeScripts');

将 jQuery库移动到页脚

你不能将WordPress默认的jQuery库移动到页面底部,但是你可以将自定义的jQuery或其他外部jQuery库(比如Google的)移动到底部。不要将CSS移动到页面底部。

第 3、4行:最后的‘true’告诉WordPress在页面底部加载这些脚本。

/** Moves jQuery to Footer*/

function footerScript(){

wp_register_script('jquery',(“”), false,'', true);

wp_register_script('default', get_template_directory_uri().'/jquery.js', false,'', true);

if(!is_admin()){/** Load Scripts and Style on Website Only*/

wp_deregister_script('jquery');

wp_enqueue_script('jquery');

wp_enqueue_script('default');

}

}

add_action('init','footerScript');

根据不用的用户角色和功能加载jQuery和CSS

如果你的网站有作者、编辑和其他管理员,你可能需要通过 jQuery来为他们显示不同的信息。你需要使用 current_user_can确定登录的用户的角色和功能。

下面三个例子中,如果用户已经登录,将在整个网站加载这些脚本和CSS。使用!is_admin()包装 enqueue_script确保只在前台加载,或者在 add_action使用 admin_enqueue_scripts就可以确保只在后台管理区加载。

为可以“编辑文章”的管理员加载脚本和CSS

只对超级管理员和网站管理员生效

/** Add CSS& jQuery based on Roles and Capabilities*/

function myScripts(){

if( current_user_can('edit_posts')){

/** Add jQuery and/or CSS Enqueue*/

}

}

add_action('init','myScripts');

为所有登录用户加载脚本和CSS

/** Admins/ Authors/ Contributors/ Subscribers*/

function myScripts(){

if( current_user_can('read')){

/** Add jQuery and/or CSS Enqueue*/

}

}

add_action('init','myScripts');

为管理员以外的已登录用户加载脚本和CSS

/** Disable for Super Admins/ Admins enable for Authors/ Contributors/ Subscribers*/

function myScripts(){

if( current_user_can('read')&&!current_user_can('edit_users')){

/** Add jQuery and/or CSS Enqueue*/

}

}

add_action('init','myScripts');

最后的提示

上面的很多例子如果使用相同的add_action,就可以被合并成一个单一的函数。

换句话说,您可以使用多个 if语句在一个函数中分裂了你的脚本和CSS调用,如:if_admin!if_admin,is_page,is_single和current_user_can的,因为每次使用相同的add_action的init。

wordpress主题,修改头部代码加入JS

第一步:新建header.php

在做主题文件夹wp-content\themes\goodblog下面新建一个头部文件header.php,然后将index.php中的头部代码提取(剪切)出来,写入这个文件:

第二步:修改index.php

保存好头部文件,在index.php的前面加上代码:

get_header()函数会自动载入主题文件夹中的header.php文件,所以头部文件的文件名命名为header.php然后使用get_deader()函数即可;

现在头部文件已经制作好了,接下来的工作就是编辑头部文件header.php将里面的静态html代码换成动态的php代码。

第三步:修改title

需要更改信息,一般我们将title信息改成这样的:文章页面标题|网站名称,当然用户也可以根据自己的seo只是更改,比如有的人在标题中加入网站描述。将header.php中的<title>index</title>改成下面的代码:

上面的代码通过判断将首页、文章页、分类页、404页面的<title>信息设置成不一样的形式,这样是很有必要的。

几个判断函数的解释如下:

第四步:修改css文件的路径

在header.php文件中找到下面代码:

这个样式表的路径./style.css是网站根目录。

如果用户不想让别人轻易看出用户网站是使用 wordprss程序,那么可以改变图片、样式表等文件的路径,比如本工作室,将图片、样式表都移到了网站根目录,在网页代码中就不会出现 wordprss站才有的wp-content/themes之类的路径。好了,将上面的代码改成:

bloginfo('stylesheet_url')会自动输出网站主题文件夹下style.css文件的绝对网址,如

说到这里,顺便修改一下图片路径,在index.php里有张图片路径需要修改,不过现在可改可不改,后期会自动调用文章图片;

用文本编辑器打开index.php给这些图片加上正确的URL,搜索代码,将所有的:src=”images/,批量替换成src=”<?php bloginfo('template_url');?>/images/。现在再刷新你的主页,看文章的缩略图是否可以正常显示。

第五步:关于wp_head()

wp_head函数对于要使用插件的主题来说比较重要,一般如果插件需要加载css文件和js文件,都是通过wp_head()函数输出的。在header.php文件的</head>前面添加:

在去看自己的网站,查看网页源代码,会发现<head></head>标签中多了如下代码:

如何开发一个WordPress插件

在开始之前,需要注意三件事情

I、给插件取一个个性化的名字,越个性化越好,以防和其他插件重名冲突。

II、代码里面,一定要包含注释,不为自己,也要为想修改你代码的别人想想。

III、尽量用最新版的 WordPress进行开发和测试。

插件名称和插件结构

一般来说,都是在 wp-content\plugins目录下建立一个文件夹,文件夹名就是插件的名称,我们插件名字为”copyright_plugin”,文件结构如下。

\wp-content\plugins\copyright_plugin下有copyright_plugin.php和readme.txt

这里的 readme.txt文件中包含了一些插件的介绍,使用说明等信息,主要是提交到 WordPress官方网站时候用到的,可以参考他们给的模板,另外还有插件截图预览的功能,需要另外添加图片,但是我们现在是练习,不需要提交到官网,所以暂时先不涉及这些。

插件的核心

总的来说,插件的核心是两个 function,用来添加 Hooks(中文译为钩子)

add_action($hookname,$callbackfunction)

add_filter($hookname,$callbackfunction)

这两个方法相当重要,几乎所有的插件都要用到他们。

Actions,我理解就是 wordpress核心代码预留的一些特殊的切入点,或者说是在执行一些特定事件时候发生,例如文章发布时,或者访客留言时触发。

Filters,应该就是 wordpress执行时,对数据传输过程的一种过滤机制,例如当文章保存到数据库的过程,或者文章从事数据库中取出,展现到浏览器中的这个过程。

我们今天要制作的插件,应该是用 Filters,因为我们要在文章显示在浏览器之前,在最后面加上一段字符窜,用来显示版权信息,后面添加菜单项的时候,也要用到 Actions。

插件概要信息

用文本编辑器打开 copyright-plugin.php文件,输入如下信息:

<?php

/*

Plugin Name: Copyright plugin

Plugin URI:

Description:此插件将在文章正文最下面,显示一行版权信息

Version: 1.0.0

Author: xcxc

Author URI:

License: GPL

*/

?>

保存好文件,然后登录 WordPress后台,打开插件菜单,应该就可以看到这个插件,已经显示在插件列表里面了,并且可以启用这个插件试试,不过没有任何效果,因为到目前为止,这个插件还没有实现任何功能。

为插件实现功能

修改copyright_plugin.php

<?php

/*

Plugin Name: Copyright plugin

Plugin URI:

Description:此插件将在文章正文最下面,显示一行版权信息

Version: 1.0.0

Author: xcxc

Author URI:

License: GPL

*/

/*此插件将在文章正文最下面,显示一行版权信息*/

function display_copyright(){

return”<p style='color:red'>本站点所有文章均为原创,转载请注明出处!</p>”;

}

?>

保存好这个文件,然后打开正在用的主题文件夹,打开index.php文件夹,找到 get_template_part('content', get_post_format());并在下面添加如下代码

if(function_exists('display_copyright')){

echo display_copyright();

}

function_exists是判断 display_copyright函数是否存在,因为当插件停用的时候,主题代码里面是找不到这个函数的,所以要判断一下,防止出错。

然后在 wordpress后台启用该插件,再打开首页看看效果吧!

至此,这段代码,应该可以勉强算是一个插件了。之所以说勉强,是因为这个插件存在一个问题,需要手工去修改主题代码,如果用户换了主题的话,需要在新主题里面再次修改代码,这个不好。

改良插件

还记得我们前面说过的 Hooks(钩子)吗,我们要开始用 Filter钩子了!

代码修改copyright_plugin.php如下:

<?php

/*

Plugin Name: Copyright plugin

Plugin URI:

Description:此插件将在文章正文最下面,显示一行版权信息

Version: 1.0.0

Author: xcxc

Author URI:

License: GPL

*/

add_filter('the_content','display_copyright');

/*这个函数在日志正文结尾处添加一段版权信息,并且只在首页页面才添加*/

function display_copyright($content){

if( is_home())

$content=$content.”<p style='color:red'>本站点所有文章均为原创,转载请指明出处!</p>”;

return$content;

}

?>

参看以上代码,其中 the_content是钩子的名字,display_copyright是回调函数名称。这样一来,只要启用插件就可以实现功能,无需去修改主题了,请把刚才在index.php文件中添加的代码删掉,然后启用插件,看看效果吧,显示效果应该是一样的,无论怎么换主题,还是会自动显示版权信息。

is_home是判断是不是主页

更进一步

至此一个真正的插件算是完成了。但是此插件将版权信息直接写在代码里,如果用户想自定义版权信息的话,需要修改插件的源代码,仍然不方便,所以此插件仍需改进。其实,我们可以在 WordPress后台中为插件单独添加一个菜单和页面,用户可以在这里来自定义设置设置版权信息,信息可以保存在数据库里面。

先附上完整代码,后面会做说明

<?php

/*

Plugin Name: Copyright plugin

Plugin URI:

Description:此插件将在文章正文最下面,显示一行版权信息

Version: 1.0.0

Author: xcxc

Author URI:

License: GPL

*/

/*注册激活插件时要调用的函数*/

register_activation_hook( __FILE__,'display_copyright_install');

/*注册停用插件时要调用的函数*/

register_deactivation_hook( __FILE__,'display_copyright_remove');

function display_copyright_install(){

/*在数据库的 wp_options表中添加一条记录,第二个参数为默认值*/

add_option(“display_copyright_text”,”<p style='color:red'>本站点所有文章均为原创,转载请注明出处!</p>”,'','yes');

}

function display_copyright_remove(){

/*删除 wp_options表中的对应记录*/

delete_option('display_copyright_text');

}

if( is_admin()){

/*利用 admin_menu钩子,添加菜单*/

add_action('admin_menu','display_copyright_menu');

}

function display_copyright_menu(){

/* add_options_page($page_title,$menu_title,$capability,$menu_slug,$function);*/

/*页名称,菜单名称,访问级别,菜单别名,点击该菜单时的回调函数(用以显示设置页面)*/

add_options_page('Set Copyright','Copyright Menu','administrator','display_copyright','display_copyright_html_page');

}

function display_copyright_html_page(){

?>

<div>

<h2>Set Copyright</h2>

<form method=”post” action=”options.php”>

<?php/*下面这行代码用来保存表单中内容到数据库*/?>

<?php wp_nonce_field('update-options');?>

<p>

<textarea

name=”display_copyright_text”

id=”display_copyright_text”

cols=”40″

rows=”6″><?php echo get_option('display_copyright_text');?></textarea>

</p>

<p>

<input type=”hidden” name=”action” value=”update”/>

<input type=”hidden” name=”page_options” value=”display_copyright_text”/>

<input type=”submit” value=”Save” class=”button-primary”/>

</p>

</form>

</div>

<?php

}

add_filter('the_content','display_copyright');

/*这个函数在日志正文结尾处添加一段版权信息,并且只在首页页面才添加*/

function display_copyright($content){

if( is_home())

$content=$content. get_option('display_copyright_text');

return$content;

}

?>

说明:

以下代码自己要是在启用插件时和停用插件时调用,注释中已经写得很详细了。

/*注册激活插件时要调用的函数*/

register_activation_hook( __FILE__,'display_copyright_install');

/*注册停用插件时要调用的函数*/

register_deactivation_hook( __FILE__,'display_copyright_remove');

function display_copyright_install(){

/*在数据库的 wp_options表中添加一条记录,第二个参数为默认值*/

add_option(“display_copyright_text”,”<p style='color:red'>本站点所有文章均为原创,转载请注明出处!</p>”,'','yes');

}

function display_copyright_remove(){

/*删除 wp_options表中的对应记录*/

delete_option('display_copyright_text');

}

添加菜单和页面的代码如下:

if( is_admin()){

/*利用 admin_menu钩子,添加菜单*/

add_action('admin_menu','display_copyright_menu');

}

function display_copyright_menu(){

/* add_options_page($page_title,$menu_title,$capability,$menu_slug,$function);*/

/*页名称,菜单名称,访问级别,菜单别名,点击该菜单时的回调函数(用以显示设置页面)*/

add_options_page('Set Copyright','Copyright Menu','administrator','display_copyright','display_copyright_html_page');

}

至此,已经可以在后台看到菜单项了,但是点击的话,还会出错,因为还没有添加对应的页面(如何自定义添加后台菜单位置)

下面开始添加页面,主要代码如下:

function display_copyright_html_page(){

?>

<div>

<h2>Set Copyright</h2>

<form method=”post” action=”options.php”>

<?php/*下面这行代码用来保存表单中内容到数据库*/?>

<?php wp_nonce_field('update-options');?>

<p>

<textarea

name=”display_copyright_text”

id=”display_copyright_text”

cols=”40″

rows=”6″><?php echo get_option('display_copyright_text');?></textarea>

</p>

<p>

<input type=”hidden” name=”action” value=”update”/>

<input type=”hidden” name=”page_options” value=”display_copyright_text”/>

<input type=”submit” value=”Save” class=”button-primary”/>

</p>

</form>

</div>

<?php

}

现在再去点击刚才新加的菜单,可以显示出来一个页面了,我们可以在这里设置版权信息文本。

另外还有如下代码要修改

/*这个函数在日志正文结尾处添加一段版权信息,并且只在首页页面才添加*/

function display_copyright($content){

if( is_home())

$content=$content. get_option('display_copyright_text');

return$content;

}

将原来的静态化文本,改成动态的,之所以要这么改,是因为我们已经将数据存到数据库里面了,这里要从数据库里面取出数据。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享