如何在WordPress自定义帖子类型档案中添加贴子

最近我们的一个用户问我们是否可以添加粘贴到自定义的帖子类型的档案。 默认情况下,WordPress有粘性功能可用于帖子,但不适用于其他帖子类型。 在这篇文章中,我们将向您展示如何在WordPress自定义帖子类型档案中添加贴子。 在我们继续前进之前,您可能会想要学习如何在WordPress中创建自定义的帖子类型。

在自定义帖子类型中添加粘贴帖子

首先你需要做的是安装并激活Sticky Custom Post Types插件。 激活插件后,转到 设置»阅读 并向下滚动到“粘滞自定义帖子类型”部分。 接下来,您需要选择您想要Stick的自定义帖子类型。启用此选项。

为自定义帖子类型启用粘性帖子

现在我们在这里做的是,我们已经添加了粘贴帖子功能到我们的自定义帖子类型。 自定义帖子类型中的粘性帖子将像常规粘性帖子一样显示在首页上。

问题是,默认情况下,WordPress只在主页上显示粘性帖子。 它不会在归档页面上显示粘性帖子。

在自定义帖子类型档案中显示易粘帖子

让我们假设你有一个电影评论的自定义发布类型,通过使用上面提到的插件启用了粘性帖子。 现在,您希望电影评论帖子类型中的粘性帖子以不同的方式显示,并且在非粘性常规电影评论之上进行显示。 喜欢这个:

在自定义帖子类型存档页面上显示粘性帖子

要实现这个目标,首先你需要的是你的自定义文章类型的档案模板,像这样: 归档后type.php 。 了解如何创建自定义的帖子类型存档页面。 例如,如果您有自定义的帖子类型 电影评论 那么你的存档页面模板应该是 归档电影reviews.php 。 如果您没有模板,请创建一个模板。 只需将archive.php的内容复制到主题目录中,并将其粘贴到新文件中即可 归档您的-后type.php

下一步是将这些代码添加到你的主题中 的functions.php 文件:

函数wpb_cpt_sticky_at_top($ posts){
 
     //仅将其应用于档案
     if(is_main_query()&& is_post_type_archive()){
         全球$ wp_query;
 
         $ sticky_posts = get_option('sticky_posts');
         $ num_posts = count($ posts);
         $ sticky_offset = 0;
 
         //找到粘滞的帖子
         for($ i = 0; $ i ID,$ sticky_posts)){
                 $ sticky_post = $ posts [$ i];
 
                 //从当前位置移除粘性
                 array_splice($ posts,$ i,1);
 
                 //移动到其他贴纸之后
                 array_splice($ posts,$ sticky_offset,0,array($ sticky_post));
                 $ sticky_offset ++;
 
                 //从粘性帖子数组中移除帖子
                 $ offset = array_search($ sticky_post-> ID,$ sticky_posts);
                 未设置($ sticky_posts [$ offset]);
             }
         }
 
         //如果需要的话,寻找更多的粘性帖子
         如果(!empty($ sticky_posts)){
 
             $ stickies = get_posts(array(
                 'post__in'=> $ sticky_posts,
                 'post_type'=> $ wp_query-> query_vars ['post_type'],
                 'post_status'=>'发布',
                 'nopaging'=> true
             ));
 
             foreach($ stickies为$ sticky_post){
                 array_splice($ posts,$ sticky_offset,0,array($ sticky_post));
                 $ sticky_offset ++;
             }
         }
 
     }
 
     返回$ posts;
 }
 
 add_filter('the_posts','wpb_cpt_sticky_at_top');

 //在文章标题中添加粘性类以不同的方式设置样式

 函数cpt_sticky_class($ classes){
 如果(is_sticky()):
 $ classes [] ='sticky';
 返回$类;
 万一;
 返回$类;
 }
 add_filter('post_class','cpt_sticky_class'); 

上面的代码会把你的贴子移动到顶部,如果你的主题正在使用 post_class() 功能,那么它会在课程中添加粘性。

你可以用你的风格来粘贴 。黏 类在你的样式表中。 例:

.sticky {
 背景色:#ededed;
 背景图像:网址( 'http://example.com/wp-content/uploads/featured.png');
 背景重复:不重复;
 背景位置:右上角;
 } 

造型粘滞的职位

我们希望这篇文章帮助您在自定义文章类型档案中添加粘性帖子。 有关问题和反馈,请在下面留言。

来源:Tareq Hasan