WordPress作为全球最受欢迎的博客和内容管理系统,其强大的功能离不开背后丰富的函数库。对于开发者来说,掌握一些常用的WordPress函数,能大大提高开发效率和代码质量。本文将为大家介绍一些WordPress常用函数,帮助开发者快速入门。
一、获取内容信息
1. the_title()
获取文章标题。
“`php
“`
2. the_content()
获取。
“`php
“`
3. the_permalink()
获取文章链接。
“`php
“`
4. the_excerpt()
获取文章摘要。
“`php
“`
5. get_the_title()
获取文章标题(不输出)。
“`php
“`
二、获取页面信息
1. get_the_ID()
获取当前页面的ID。
“`php
“`
2. get_the_title()
获取当前页面的标题。
“`php
“`
3. get_the_permalink()
获取当前页面的链接。
“`php
“`
4. get_page_by_title()
根据标题获取页面ID。
“`php
$page_id = get_page_by_title(‘关于我们’);
echo $page_id;
?>
“`
5. get_page_by_path()
根据路径获取页面ID。
“`php
$page_id = get_page_by_path(‘/about-us’);
echo $page_id;
?>
“`
三、获取分类信息
1. get_category()
获取分类信息。
“`php
$category = get_category(1);
echo $category->name;
?>
“`
2. get_the_category()
获取当前文章的分类。
“`php
$categories = get_the_category();
foreach ($categories as $category) {
echo $category->name . ‘
‘;
}
?>
“`
3. get_category_by_slug()
根据分类别名获取分类ID。
“`php
$category_id = get_category_by_slug(‘technology’);
echo $category_id;
?>
“`
四、获取用户信息
1. get_user_by()
根据用户名、邮箱、ID等方式获取用户信息。
“`php
$user = get_user_by(‘login’, ‘admin’);
echo $user->display_name;
?>
“`
2. get_current_user_id()
获取当前登录用户的ID。
“`php
echo get_current_user_id();
?>
“`
3. is_user_logged_in()
判断用户是否登录。
“`php
if (is_user_logged_in()) {
echo ‘已登录’;
} else {
echo ‘未登录’;
}
?>
“`
五、获取评论信息
1. get_comments()
获取所有评论。
“`php
$comments = get_comments();
foreach ($comments as $comment) {
echo $comment->comment_content . ‘
‘;
}
?>
“`
2. get_comment_author()
获取评论作者。
“`php
echo get_comment_author();
?>
“`
3. get_comment_date()
获取评论日期。
“`php
echo get_comment_date();
?>
“`
六、获取自定义字段
1. get_post_meta()
获取文章自定义字段。
“`php
$meta_value = get_post_meta($post->ID, ‘my_custom_field’, true);
echo $meta_value;
?>
“`
2. update_post_meta()
更新文章自定义字段。
“`php
update_post_meta($post->ID, ‘my_custom_field’, ‘new_value’);
?>
“`
3. delete_post_meta()
删除文章自定义字段。
“`php
delete_post_meta($post->ID, ‘my_custom_field’);
?>
“`
总结
以上是WordPress常用函数的简要介绍,这些函数在开发过程中非常实用。WordPress的函数库远不止这些,开发者可以根据实际需求,查阅官方文档或相关资料,深入学习更多函数。希望本文能对大家有所帮助!
wordpress博客关于<php wp_head(); >问题求助
去除wordpress头部不必要的元素标
完整的wordpress头部清理代码
<?php
//remove_action(‘wp_head’,‘wp_enqueue_scripts’,1);
remove_action(‘wp_head’,‘feed_links’,2);
remove_action(‘wp_head’,‘feed_links_extra’,3);
remove_action(‘wp_head’,‘rsd_link’);
remove_action(‘wp_head’,‘wlwmanifest_link’);
remove_action(‘wp_head’,‘index_rel_link’);
remove_action(‘wp_head’,‘parent_post_rel_link’,10,0);
remove_action(‘wp_head’,‘start_post_rel_link’,10,0);
remove_action(‘wp_head’,‘adjacent_posts_rel_link_wp_head’,10,0);
//remove_action(‘wp_head’,‘locale_stylesheet’);
remove_action(‘publish_future_post’,‘check_and_publish_future_post’,10,1);
//remove_action(‘wp_head’,‘noindex’,1);
//remove_action(‘wp_head’,‘wp_print_styles’,8);
//remove_action(‘wp_head’,‘wp_print_head_scripts’,9);
remove_action(‘wp_head’,‘wp_generator’);
//remove_action(‘wp_head’,‘rel_canonical’);
remove_action(‘wp_footer’,‘wp_print_footer_scripts’);
remove_action(‘wp_head’,‘wp_shortlink_wp_head’,10,0);
remove_action(‘template_redirect’,‘wp_shortlink_header’,11,0);
add_action(‘widgets_init’,‘my_remove_recent_comments_style’);
functionmy_remove_recent_comments_style(){
global$wp_widget_factory;
remove_action(‘wp_head’,array($wp_widget_factory->widgets['WP_Widget_Recent_Comments'],‘recent_comments_style’));
}
?>
把这段代码插入到主题的functions.php文件下,就可以清除WordPress头部很多的冗余信息。下面说说这些代码的具体意义是什么,以免删除某些你想保留的功能。
wp_head()函数
wp_head()是wordpress的一个非常重要的函数,基本上所有的主题在header.php这个文件里都会使用到这个函数,而且很多插
件为了在header上加点东西也会用到wp_head(),比如SEO的相关插件。不过在wp_head()出现的这个位置,会增加很多并不常用的代
码,如何删除呢?可以通过remove_action移除这些代码。
remove_action函数
函数原型:remove_action($tag,$function_to_add,$priority,$accepted_args);
该函数移除一个附属于指定动作hook的函数。该方法可用来移除附属于特定动作hook的默认函数,并可能用其它函数取而代之。
重要:添加hook时的$function_to_remove和$priority参数要能够相匹配,这样才可以移除hook。该原则也适用于过滤器和动作。移除失败时不进行警告提示。文章来自
参数文章来自
1.$tag(字符串)(必需)将要被删除的函数所连接到的动作hook。默认值:None
2.$function_to_remove(回调)(必需)将要被删除函数的名称默认值:None
3.$priority(整数)(可选)函数优先级(在函数最初连接时定义)默认值:10
4.$accepted_args(整数)(必需)函数所接受参数的数量。默认值:1
返回值
(布尔值)函数是否被移除。
1.Ttue函数被成功移除
2.False函数未被移除
如何在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主题
其实修改和制作主题并没有想像中的那么复杂,当然你要作出一款惊世骇俗的Wordpress主题除外。
先说说修改Wordpress模版所需掌握的知识。Wordpress函数大部分都可以在WP官方Codex找到,也可以说是固定的,并不需深入学习,知道某句函数从哪开始到哪结束就可以,已免修改主题时造成错误。关键是掌握DIV+CSS,网上教程很多,对于修改Wordpress模板粗略学一下原理就够了,也就是那么几句属性写法,因为我也还在学习,这里就不现丑教大家了,自己找个教程看看吧。
一套完整的WordPress模版应至少包括如下文件:
style.css:样式表文件
index.php:首页模板
archive.php:文章归档/分类目录模板
404.php: 404模板
comments.php:留言/回复模板
footer.php:底部模板
header.php:顶部模板
sidebar.php:侧栏模板
page.php:页面模板
single.php:文章页面模板
functions.php:模板函数
search.php:搜索结果模板
当然,有些主题可能不止这些文件,比如我的HotNews Pro主题模板文件有上百个,但以上文件是每套模板所必备的。
知道上面模板的作用可以让你知道当前页面应该修改哪个对应的模板。
下面是这篇的重点:工欲善其事,必先利其器!
可能很多人一想到网页制作工具,就会联想到"网页三剑客"中的Dreamweaver(简称DW)号称所见即所得,那是指当初流行用Table表格制作网页,而现如今是DIV+CSS时代了,所见即所得的优势再也没有了,这个DW几乎已无用武之地(个人认为)。另外国外原来常用的网页制作工具是Adobe GoLive,由于中文版推出较晚,才造成DW在国内流行,DIV+CSS网页制作大型软件也是首推Adobe GoLive,不过该软件目前已停止开发,可惜。今天推荐的工具并不是这两个售价高昂,体积庞大软件.修改和制作Wordpress主题根本无需使用什么专业软件,不过也不像某些人吹嘘的那样用系统自带的记事本就能写主题。
首先,你需要搭建一个本地PHP测试环境,方便修改模版,当然你也可以在Wordpress后台主题编辑页面中修改,临时用一下还可以,不适合修改较多的情况。如何搭建本地测试环境网上教程很多,这里就不详细说了,推荐使用Wamp或者phpStudy,自己搜索一下。
必备工具软件:
■文本编辑器
EmEditor(收费软件)、EditPlus(收费软件)、Notepad++(免费)
前两款是收费软件,后者是免费的功能也非常不错,适合新手使用,绝不能用系统自带的记事本编辑模版文件,特别是中文模版,否则会造成模板借位,中文模版编码为:UTF-8无BOM。
■火狐浏览器(Mozilla Firefox)
有的人会问,为什么要用火狐,系统自带的IE一样可以浏览网站?当然不是完全用火狐去浏览网站,而是利用火狐强大的扩展能力,为我们仙人指路。
当我们要修改某部分样式及结构时,都会直接打开Wordpress主题模板文件或在后台编辑主题,密密麻麻的代码,就是主题作者自己看了也会头晕眼花,所以会经常在关键部位加上一些注释,
php中注释一般为:<!– XXX–>
css中为:/** XXX**/
但一些注释可能只有作者自己知道是什么。因此,很难在打开的模板文件中找到准备修改的部分,这时我们就会用到火狐的扩展:Firebug,下载地址
IE浏览器也有类似的插件,但功能上无法与火狐的扩展相比,一些浏览器本身就集成了该功能比如Opera,功能貌似同样的强大。
具体操作方法
如果你已安装火狐并已添加Firebug扩展,可以继续往下看如何具体修改Wordpress主题。
■修改页面元素的文字大小
以修改HotNews Pro主题CMS布局,最新文章标题文字大小为例:
鼠标停在最新文章标题上,右键调出菜单选择“使用Firebug”查看元素(如图)
之后默认会在火狐浏览器底部调出Firebug窗口,左侧显示的是当前网页元素的HTML结构,右侧是当前元素选择器的样式属性和所在的文件及行数(如图),在style.css文件的第277行。
用上面介绍的文本编辑软件,打开主题style.css文件在277行找到:
#post h3{
font-size: 13px;
font-weight: bold;
}
修改其中的数字13,为自己认为合适的大小即可。
如果当前元素选择器的样式中没有控制字体大小的 font-size: 13px;属性,而是使用的全局字号设定,可以为其单独加上这个 font-size: 13px;属性
看了上面的一个实例,是不是很简单,修改主题样式,关键是要找到所需修改元素选择器名称及样式属性的位置。
本人在修改主题模版时也用同样的方法,没有Firebug扩展的仙人指路,就是修改自己作的模板也决不是一件易事。
■如何确定某个网页元素(模块)的整段代码,便于调整位置。
以HotNews Pro主题导航菜单移动到LOGO下面为例:
首先,用上面的方法确定导航菜单最外层的选择器名称为:top
然后,用Notepad++文本编辑器,打开主题顶部模板header.php,搜索查找top位置,并用鼠标点击该选择器,会发现Notepad++已为我们明确标示了该段代码开始和结束的位置(如图):
下面的就简单了,用同样的方法找到导航菜单下面元素最外层的选择器结束的位置将代码移动至此即可。
以上就是修改模板的基本方法和步骤,所谓的高手基本都这么折腾模版,如果你花一两天时间学一下DIV+CSS相信会更得心应手。
另一个比较不错的扩展是:Web Developer,这里就不介绍了,请自行研究。