WordPress教程
模板兔提供专业的wordpress建站教程、wordpress主题开发教程、wordpress插件开发教程、wordpress二次开发教程等。
WordPress教程:如何使用WordPress Rest API发布文章并设置postmeta字段信息?要使用WordPress Rest API发布文章必须先鉴权,WordPress Rest API接收的文章字段仅包含posts数据表,不包含postmeta数据表,所以要保存postmeta信息,必须添加自定义回调函数处理。
WordPress Rest API发布文章
WordPress Rest API发布文章的接口比较简单,这里简单介绍下发布文章过程。
请求地址:域名/wp-json/wp/v2/posts
请求参数:
title(文章标题)
content(文章内容)
其它参数
返回值:成功返回文章信息,失败返回提示信息。
WordPress Rest API保存postmeta
postmeta信息需要我们添加WordPress Rest API扩展程序,因为它没有对postmeta信息的...
WordPress教程:如果你需要制作一个前端提交内容的表单,文本编辑器自然不可避免的要用到wp_editor。
但是如果直接调用这个函数会出现一些问题,第一个,由于在前端使用,比如你在一个自定义的页面模板中使用,那么上传的文件会附属到这个页面上,而不是新创建的文章上。同样也会导致另一个问题,由于wp_editor默认了编辑的内容是当前页面,所以如果是非管理员用户,是无法上传文件的,因为通常页面是由管理员创建的。
实际上,我们需要并不是编辑当前的页面,而是利用wp_editor这样一个编辑器,编辑文本,上传文件。然后将内容传递到wp_insert_post创建文章。
研究WordPress后台发布文章的代码后,发现后台是在打开new-post.php页面后就默认创建了...
WordPress教程:使用WordPress条件判断标签,可以为特定页面加载不同的模板,灵活运用WordPress条件判断标签可以制作出WordPress图片列表、专题页面、不一样的文章页面等。通常我使用这些条件标签来为不同页面输出不同的关键词标签(Keywords)、描述标签(Description)内容。
WordPress条件判断标签详细列表
主页
is_home()
主页,当前页面为主页时返回True,只有“阅读”设置中的首页显示设置为“最新文章”才返回True
首页
is_front_page()
首页,不管“阅读”设置中的首页显示设置为何值,都返回True。需要注意的是,当首页显示设置为一个静态页面时,你的站点首页加载的是page.php页面模板。
管理员面板
is_admin()
后台,只有处于...
WordPress教程:WordPress里搜索是很常见的功能,有时候我们为了突出搜索结果,会对搜索关键字进行标红醒目的处理。当标题里含有关键字时,标红很容易,但是假如是正文里包含,但是列表信息里并没有显示出那段包含关键字的语句,这个时候显示的结果可能并不那么醒目,那么如何显示呢?
我们可以使用下面这段代码:
$con = MBThemes_strip_tags(get_the_content());
if(strpos($con,$search_key) !== false){
$str = mb_convert_encoding($con, "UTF-8", "GB2312");
preg_match_all("/(.{50}$search_key.{20})/su", $con, $matches, PREG_SET_ORDER);
if($matches[0][0]){
echo str_replace($search_key,'<font color="red">'.$search_key.'&l...
WordPress教程:WordPress如何判断一个分类是另一个分类的子分类,换句话说就是如何判断一个分类是另一个分类的父分类,官方有这样一个函数cat_is_ancestor_of。
cat_is_ancestor_of( int|object $cat1, int|object $cat2 )
参数说明
$cat1
(int|object) (Required) ID or object to check if this is the parent category.
$cat2
(int|object) (Required) The child category.
WordPress教程:wordpress经常出现数据库挂掉,可能是内存不足,可以加大内存,若是内存充足也一样出现问题,可以试试一下方法。
宝塔面板里添加计划任务:
pgrep -x mysqld &> /dev/nullif [ $? -ne 0 ];thenbash /www/server/panel/script/rememory.sh
/etc/init.d/mysqld startfi
WordPress教程:最近给一个用户增加了这样一个功能,就是在用户注册的时候需要填邀请码,邀请码需要购买。
一般的人可能就是把邀请码放到第三方平台卖,而这次我给用户开发的是直接在网站注册时在网站里购买邀请码,购买时需要填一个邮箱来接收邀请码的自动发放。其中购买支付的接口是基于erphpdown插件,注册页面是modown主题的自定义注册,邀请码自动生成基于某个邀请码插件。
有相同需求的用户可以联系模板兔哦~
WordPress教程:在我们开发模板的过程中,难免会制作一些首页模板,如果这个首页模板是显示文章列表的,那么必定就会显示分页。
今天模板兔在测试的过程中发现分页失效,将页面不设置为首页时分页又正常,感觉很奇怪。
我们常用的获取当前页面page数的方法是:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
所以模板兔怀疑当把页面设置为首页时,传入的参数不是paged,那会是什么呢?联想到可能是page,所以测试了一下,果不其然。
所以获取当前page数是使用以下代码:
if(is_front_page()){
$paged = (get_query_var('page')) ? get_query_var('page') : 1;
}else{
$paged = (get_query_var('paged')) ? get_query_var(...
WordPress教程:有时候我们需要给文章添加自定义字段来丰富文章内容的显示,当用到可视化编辑器的字段内容时,前台的输出挤到一起了,没有自动换行(自动加<p>标签),那么如果实现自动换行呢?
使用函数wpautop即可,例如:
$con = get_post_meta(get_the_ID(),'mobantu',true);
echo wpautop($con);
WordPress教程:当我们开始做一个网站时,往往想先把网站的结构搭建清晰,链接伪静态规则就是很重要的一部分,好的伪静态规则,对搜索引擎抓取数据帮助也很大。
比如我们希望wordpress分类目录的页面地址是类似mobantu.net/wordpress/,也就是最后面带有一个斜杠,这样很清楚的知道这个是一个分类目录,文章详情页面地址是类似mobantu.net/wordpress/88.html,就是wordpress分类下的某文章。这种结构对于搜索引擎的抓取就很轻松,让爬虫很容易弄懂。
但是wordpress系统默认的分类目录后面不带斜杠,所以我们需要用到一个插件:Permalink Trailing Slash Fixer,后台插件里搜这个即可免费安装。
当然,如果你要去掉分类目录页面路径里category/wordpr...
WordPress教程:最近给一个用户写批量发布文章的插件,里面需要添加advanced custom fields自定义字段的文章属性,刚开始模板兔只是简单的用以下代码来添加字段值:
add_post_meta($post_id,'size',$size);
上面的size就是自定义字段的名称,这种逻辑理论上可行的,但是实际上却存在一个问题。由于使用的主题的文章详情页显示字段信息是通过advanced custom fields插件的方法来判断获取的,而上面的add_post_meta只是直接给文章添加了字段,并没有经过advanced custom fields插件,所以导致前台显示时没法通过advanced custom fields的方法获取到该文章的字段值。
那么究竟要用什么方法才能实现呢?我们需要用到插件的一个函数update_field,这个函数需...
WordPress教程:假如你网站的文章内容全是图片,而且图片很多,平铺下去可能显示的并不友好,而且图片大的时候很耗带宽,文章多了的话每个修改也很费劲,那么怎么能将文章内容里的图片自动显示成相册呢,你可以使用我们的modown主题,然后用子主题修改一下single.php里的部分代码即可。此相册支持弹窗放大播放、VIP隐藏、试看几张、毛玻璃显示等。
<?php
preg_match_all('/<img[\s\S]*?src\s*=\s*[\"|\'](.*?)[\"|\'][\s\S]*?>/i', $post->post_content, $matches);
$match = $matches[1];
$imgs = '';
foreach ( $match as $attachment ) {
$imgs .= $attachment.',';
}
$imgs = rtrim($imgs,',');
if($imgs){
echo do_shortcode('[...
WordPress教程:当我们开发一款wordpress模板的时候,常常需要自定义一些主题设置来控制wp主题的功能,除了添加一些封装好的框架外,我们还可以利用wordpress本身的自定义功能来实现,下面模板兔给出一个示例教大家如何使用wp的自定义设置:
add_action( 'customize_register', 'modown_customize_register' );
function modown_customize_register( $wp_customize ) {
$wp_customize->add_section('modown_setting',array(
'title' => 'Modown附加设置',
'priority' => 101
) );
$wp_customize->add_setting( 'modown_setting_presale_tips', array(
'default' => '',
) );
$wp_customize->add_setting( 'modown_setting_pr...
WordPress教程:有时候,我们在前端写上传文件的功能时,不想弹出wordpress默认的媒体库窗口,而是直接通过自写的PHP代码实现上传,这种情况自定义上传的文件目录是很好实现的,但是这些上传的文件无法在后台的媒体库里找到,不容易管理删除。
那么如何实现在网站前台不弹出默认的媒体库窗口又能直接上传到媒体库呢?而且也支持一些CDN插件比如七牛云存储、阿里云OSS,下面模板兔教大家使用下面的代码来实现上传逻辑:
<?php
// WordPress environment
require( dirname(__FILE__) . '/../../../wp-load.php' );
$wordpress_upload_dir = wp_upload_dir();
// $wordpress_upload_dir['path'] is the full server path to wp-content/uploads/2020/...
WordPress教程:WordPress建站中,少不了要用到各种插件来丰富网站功能,下面模板兔来介绍下一些常用的插件,好的插件可以帮你更好的建设网站。
以下插件若没有提供下载链接,则均可在wordpress官方库里搜索下载。
Classic editor(经典编辑器):官方编辑器插件,如果你不习惯使用wordpress默认的后台编辑器,不防试试经典编辑器
No category base wpml:去掉网站分类目录路径里的category
Wp term order:对分类法(分类目录、标签、自定义分类法)进行排序显示
Custom post type permalinks:自定义文章类型的固定链接设置(伪静态)
Loggedin:限制用户同一账号同时登录的IP数
Wp user avatar:自定义用户头像
Wp clean up:清...