因此,这里是有关WordPress的第二个每周教程。过去,我们已经学习了如何创建无限滚动的WP网站和page-flip插件。今天,我们将了解有关自定义帖子类型以及如何加载其数据的更多信息.


此功能在您的网站中确实非常重要,因为它可以让您向别人推荐您。推荐是您超赞的绝佳社交证明。而且,您不需要复杂的插件或大量代码即可实现此目标,如您所见,只需几个文件,您就可以为个人推荐创建性感的演示文稿.

让我们开始吧!

压缩 & 安装

如果您急于进行检查,可以下载并安装它.

然后,您需要添加一些数据,方法是使用仪表板中显示的全新推荐添加一些推荐:

清单推荐

然后,您可以使用基本的短代码来加载该代码:

[推荐rand = 0 max = 5]

添加该代码后,您会在页面中看到以下内容:

主要推荐

现在,我们将了解如何创建和探索此功能(通过添加更多功能并更改外观).

基础

如前所述,您需要添加标题元数据,创建插件文件并调用脚本。长话短说,您将使用插件名称在wp-content / plugins下创建一个新文件夹,然后创建一个与该文件夹同名的文件作为您的主插件文件.

完成该操作后,请按照以下步骤进行复制和粘贴:

<?的PHP
/ *
插件名称:推荐
描述:显示客户推荐.
版本:1.0
作者:Web收入博客
执照:GPL2
* /

//加入脚本和样式
函数plugin_scripts(){
wp_enqueue_script(’jquery’);
wp_enqueue_script(’flexslider’,plugins_url(’js / jquery.flexslider-min.js’,__FILE__),array(’jquery’),’2.2’,false);
wp_enqueue_script(’testimonials’,plugins_url(’js / testimonials.js’,__FILE__),array(’jquery’),’1.0’,false);
wp_enqueue_style(’flexsliderCSS’,plugins_url(’css / flexslider.css’,__FILE__),false,’2.2’,’all’);
wp_enqueue_style(’testimonialsCSS’,plugins_url(’css / testimonials.css’,__FILE__),false,’1.0’,’all’);
}
add_action("wp_enqueue_scripts","plugin_scripts");

这是我们正在做的:

  • 向WP告诉我们插件的名称,作者,它的作用
  • 创建一个函数,在其中插入常规脚本(如jQuery)和自定义脚本(如flexslider)以及样式表
  • 告诉WP在其默认脚本调用中加载脚本功能,以便将其实际加载到页面中

一切都很酷,但不要忘记在/ js和/ css下实际创建文件。您只需将它们下载到我们的演示内容中,这样就无需花很多时间来找到flexslider文件.

现在我们已经准备好所有基本的东西,我们可以开始有趣的部分.

自定义帖子类型

默认情况下,WordPress有2种常见的帖子类型,页面和帖子。但是它也有很多内部帖子类型(如附件),因此“帖子类型”的定义是:您需要存储的每种数据类型.

由于我们的插件将创建新功能,因此WP没有内置的存储位置,因此我们需要创建它。不要害怕小蚂蚱,这很简单,您可以使用以下代码:

//创建帖子类型的黑魔法
函数create_post_type(){
register_post_type(
‘推荐书’,//新帖子类型
数组(
‘标签’=> 数组(
‘名称’=> __(’推荐书’),
‘singular_name’=> __(’推荐书’)
),
‘公共’=> true,/ *帖子类型仅供公共使用。这包括在前端和wp-admin中。 * /
‘支持’=> array(’title’,’editor’,’thumbnail’,’custom_fields’),
‘hierarchical’=> 假

);
}

在这里,我们只是使用register_post_type()函数告诉WP“嗨,好友,我们需要存储此类数据,请准备好接收它”.

我们还告诉他,此类数据称为“推荐”,应该可供公众访问(因此它实际上在您的仪表板中创建了一个新菜单项),我们需要的字段以及是否为分层结构是否(例如,我们拥有父页面和子页面的页面).

然后,每次加载WordPress时都需要调用它。这个钩子可以做到:

add_action(’init’,’create_post_type’);

自定义字段

现在,我们的自定义帖子类型具有标题(人的名字),内容(人的推荐书),图片(带有特征的图像),但是它缺少链接,因为如果该人足够友好地谈论您,那么您至少应该链接到他们的网站,对?

我们可以使用通常的自定义字段来执行此操作,但是最好有一个“封闭”字段,用户无需在其中键入字段名称,还可以在其中添加一些验证规则.

首先,我们需要创建一个新的metabox,即您在帖子编辑区域中拥有的漂亮面板,每个小面板都是一个metabox。该函数将创建并调用它:

//添加URL元框字段
函数add_custom_metabox(){
add_meta_box(’custom-metabox’,__(’Link’),’url_custom_metabox’,’testimonials’,’side’,’low’);
}
add_action(’admin_init’,’add_custom_metabox’);

add_meta_box()函数需要以下参数:

  1. ID –它的唯一标识符。您可以在这里使用任何独有的东西,例如“独角兽吃彩虹”或“见证链接”。可以在内部使用的任何东西
  2. 标题–将为用户显示什么?这里重要的是使用__()函数,该函数允许外语用户使用.po文件翻译您的插件(无需编辑插件文件)
  3. 回调–您具有元框实际内容的函数
  4. 帖子类型–在我们的情况下,我们希望仅在推荐中可见
  5. 上下文–您要在页面中的何处显示它
  6. 优先级–应该在相同位置的其他项目之前还是之后

现在,我们已经创建了url_custom_metabox()函数,.

//管理区域的HTML
函数url_custom_metabox(){
全球$ post;
$ urllink = get_post_meta($ post->ID,’urllink’,true);

//证实!
如果(!preg_match( "/ http(s?):///", $ urllink) && $ urllink!= ""){
$错误= "该网址无效";
$ urllink = "http://";
}

//输出无效的url消息,并将http://添加到输入字段
if(isset($ errors)){echo $ errors; }
?>

网址:

<?的PHP
}

好的,现在将其翻译为简单的英语:

  • 全局变量$ post被调用,所以我们可以知道哪个是当前项目的POSTID
  • 我们加载网址的当前值
  • 我们验证用户插入的值是否有效。如果至少出现一个“ http”或“ https”,则该值为“ OK”,否则该值有效,我们需要使用默认值
  • 然后我们显示错误,如果有的话
  • 现在我们开始实际的HTML,将默认值添加到PHP中的输入字段中

在这之后,我们需要实际保存用户发送的内容。我们将使用“ save_post”钩子,因此每次WordPress保存帖子时,都会调用此函数:

//保存自定义字段数据
函数save_custom_url($ post_id){
全球$ post;

if(isset($ _ POST [‘siteurl’])){
update_post_meta($ post->ID,“ urllink”,$ _ POST [‘siteurl’]));
}
}
add_action(’save_post’,’save_custom_url’);

在这里,我们只是检查是否有称为“网站链接”的发布数据,这是我们的字段名称。如果有附加链接,请保存它.

一切就绪后,新的个人鉴定页面如下所示:

新证明书

加载我们的自定义数据

现在我们需要实际加载项目,并且我们将使用get_posts()函数,主要是因为我们只有简单的数据,所以我们不需要适当的WP循环(这样会增加很多数据库调用,而实际上不需要).

因此,首先,我们创建一个函数来获取我们网站的链接(如果有的话).

//返回帖子的URL
函数get_url($ post){
$ urllink = get_post_meta($ post->ID,’urllink’,true);

返回$ urllink;
}

现在,我们可以启动简码功能。默认和验证简码数据的一种简单方法是将循环的属性创建为数组,因此我们可以根据需要添加新项,如下所示:

//注册简码以显示推荐
函数load_testimonials($ a){

$ args =数组(
"post_type" => "感言"
);

if(isset($ a [‘rand’]) && $ a [‘rand’] == true){
$ args [‘orderby’] =’rand’;
}
if(isset($ a [‘max’])){
$ args [‘posts_per_page’] =(int)$ a [‘max’];
}
//获取所有推荐
$ posts = get_posts($ args);

// HTML输出
}
add_shortcode("感言","load_testimonials");

如您所见,我们已将shortcode属性加载并在验证时传递给$ args数组,并采用WordPress需要的格式,因此我们可以使用它们加载帖子.

现在,我们需要按照flexslider的默认结构在其中添加一些HTML代码。外观如下:

回声”;
回声

    ‘;

    foreach(将$ posts作为$ post){
    //获取缩略图
    $ url_thumb = wp_get_attachment_thumb_url(get_post_thumbnail_id($ post->ID));
    $ link = get_url($ post);
    回声

  • ‘;
    如果(!empty($ url_thumb)){echo’‘; }
    回声

    ‘。$ post->帖子标题。’

    ‘;
    如果(!空($ post->post_content)){echo’

    ‘。$ post->post_content。”
    ‘; }
    if(!empty($ link)){echo’访问站点

    ‘; }
    回声

  • ‘;
    }

    回声

‘;
回声”;

等等,但是为什么我们要在PHP函数中创建HTML代码呢?那是因为只有在用户添加了内容后,我们才能有条件地加载内容,因此您不会有空的HTML标签,只需等待弄乱您的布局即可.

那边栏呢?

大多数人只想在边栏中显示推荐书,并且此插件不能很好地工作,因为文本小部件无法处理简码。有一个简单的解决方案,只需在您的代码中添加:

add_filter(’widget_text’,’do_shortcode’);

下一步是什么?

那么,您喜欢本教程吗?您会添加什么作为证明简码的选项?您对以后的帖子有什么想法吗?使用评论部分让我们知道!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me