php - 在 wordpress 中创建一个小部件以显示最新和最受欢迎的帖子
问题描述
我正在构建一个函数来显示我在 WordPress 中的最新帖子,我想知道如何返回其中的一些:
到目前为止,这是我的代码:
function wpb_set_post_views($postID) {
$count_key = 'wpb_post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}
我根据如何在没有插件的情况下显示最新帖子的想法复制了一个建议。到目前为止一切顺利,除了我需要返回一些东西以创建一个小部件以在最新和最流行之间切换。最受欢迎的小部件稍微简单一些,例如:
function get_recent_posts($count){
$args = [
'numberposts' => $count,
'offset' => 0,
'category' => 0,
'orderby' => 'post_date',
'order' => 'DESC',
'include' => '',
'exclude' => '',
'meta_key' => '',
'meta_value' =>'',
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true
];
return wp_get_recent_posts( $args );
}
这就是我可以在它们之间切换的部分:
function get_blog_posts($count , $type='recent'){
if($type=='recent'){
$posts = get_recent_posts($count);
} else {
$posts = wpb_set_post_views(get_the_ID());
}
var_dump($posts);
die();
return $posts;
}
正如我所说,我正在尝试构建它,目前我正在倾倒我的阵列,看看它们是否像我一样工作。如果我切换到流行,我将获得一个 NULL 值,但如果我尝试返回我的函数
return function wpb_set_post_views($postID);
我忘了提到我会以这种方式在我的模板中调用我的函数:
<?php if($blog_posts = get_blog_posts( wp_kses_post($instance['posts_type']) )):
foreach ($blog_posts as $blog_post) :
?>
<a class="blog-archive-sidebar-feed" href="<?=get_permalink($blog_post['ID'])?>">
<span class="blog-archive-title"><?=$blog_post['post_title']?></span>
<p class="blog-archive-date"><?=date('F d, Y' , strtotime($blog_post['post_date']))?></p>
</a>
<?php endforeach; endif; ?>
无论如何,什么都不会发生。
有什么建议吗?
解决方案
好的,
首先,该wpb_set_post_views()
函数不返回任何内容,因为其中没有任何return
语句,因此return wpb_set_post_views($postID);
不返回任何内容是完全正常的。
其次, wpb_set_post_views() 旨在更新存储指定帖子视图nb的帖子元变量,而不是返回查看次数最多的帖子列表。
您将需要创建这样一个函数(例如get_most_viewed_posts($count);
),然后在您的get_blog_posts()
函数中调用它而不是wpb_set_post_views()
.
推荐阅读
- vaadin - 显示不同 UI 的选项卡 - Vaadin 14
- office365 - 如何获取“通用频道”中的信息?
- ios - 在 iOS13 Xamarin 中打开应用程序中的 URL/文件崩溃
- loopbackjs - 在 Loopback-4 e2e 测试中模拟任何服务
- php - 命令“make:auth”未定义 laravel 6
- python - builtins.TypeError:需要一个整数(获取类型元组)
- python-3.x - 您如何在不包括 0 的二维数组中找到最小值?
- javascript - reactjs应用程序中的函数解析错误
- java - 使用 Press 'Ctrl+Space' 时不显示 @RequestMapping 注释。没有可用的完成。我在 STS-3 IDE 上工作
- arrays - 我如何在 vuetify 的数组中使用?