Php 在WordPress存档页面中仅显示带有自定义元数据库的已发布自定义类型文章
我正在使用创建一个具有自定义文章类型的文章系列,并为文章系列编号设置自定义框 下面的函数提供了在特定分类法中发布的所有帖子的列表。问题是它还列出了已删除和隐藏的帖子:Php 在WordPress存档页面中仅显示带有自定义元数据库的已发布自定义类型文章,php,wordpress,custom-post-type,Php,Wordpress,Custom Post Type,我正在使用创建一个具有自定义文章类型的文章系列,并为文章系列编号设置自定义框 下面的函数提供了在特定分类法中发布的所有帖子的列表。问题是它还列出了已删除和隐藏的帖子: function sitepoint_post_series_content_filter($content) { $slug = "sitepoint-postseries"; if ($slug != get_post_type()) { return $content; } $post_series_list =
function sitepoint_post_series_content_filter($content) {
$slug = "sitepoint-postseries";
if ($slug != get_post_type()) {
return $content;
}
$post_series_list = get_option("post_series_" . get_the_ID() . "_ids", "");
$post_series_list_array = explode(',', $post_series_list);
$post_series_serial_number = array();
foreach ($post_series_list_array as $key => $value) {
$serial_number = get_post_meta($value, "sitepoint-postseries-serial-number", true);
$post_series_serial_number[$value] = $serial_number;
}
asort($post_series_serial_number);
$html = "<ul class='sitepoint-post-series'>";
foreach ($post_series_serial_number as $key => $value) {
$post = get_post($key);
$title = $post->post_title;
$html = $html . "<li><h3><a href='" . get_permalink($key) . "'>" . $title . "</a></h3></li>";
}
$html = $html . "</ul>";
return $content . $html;
}
add_filter("the_content", "sitepoint_post_series_content_filter");
function sitepoint\u post\u series\u content\u filter($content){
$slug=“sitepoint postseries”;
如果($slug!=get\u post\u type()){
返回$content;
}
$post_series_list=get_选项(“post_series”。get_the_ID().“_ID”,”);
$post_series_list_数组=分解(“,”,$post_series_list);
$post_series_serial_number=array();
foreach($key=>value的post\u系列\u列表\u数组){
$serial\u number=get\u post\u meta($value,“sitepoint postseries序号”,true);
$post_series_serial_number[$value]=$serial_number;
}
asort($post\u series\u serial\u number);
$html=“”;
foreach($key=>value的post\u系列\u序列号){
$post=获取post($key);
$title=$post->post\u title;
$html=$html.“”;
}
$html=$html.“
”;
返回$content.$html;
}
添加内容过滤器(“内容过滤器”、“站点点”发布内容过滤器);
如何从列表中排除已删除和隐藏的帖子。用下面的代码替换您的代码
function sitepoint_post_series_content_filter($content) {
$slug = "sitepoint-postseries";
if ($slug != get_post_type()) {
return $content;
}
$post_series_list = get_option("post_series_" . get_the_ID() . "_ids", "");
$post_series_list_array = explode(',', $post_series_list);
$post_series_serial_number = array();
foreach ($post_series_list_array as $key => $value) {
$serial_number = get_post_meta($value, "sitepoint-postseries-serial-number", true);
$post_series_serial_number[$value] = $serial_number;
}
asort($post_series_serial_number);
$finalArray = array();
foreach ($post_series_serial_number as $keyPostID => $valueID) {
if('publish' == get_post_status($keyPostID)){
$finalArray[$keyPostID] = $keyPostID;
}
}
$html = "<ul class='sitepoint-post-series'>";
foreach ($finalArray as $key => $value) {
$post = get_post($key);
$title = $post->post_title;
$html = $html . "<li><h3><a href='" . get_permalink($key) . "'>" . $title . "</a></h3></li>";
}
$html = $html . "</ul>";
return $content . $html;
}
add_filter("the_content", "sitepoint_post_series_content_filter");
function sitepoint\u post\u series\u content\u filter($content){
$slug=“sitepoint postseries”;
如果($slug!=get\u post\u type()){
返回$content;
}
$post_series_list=get_选项(“post_series”。get_the_ID().“_ID”,”);
$post_series_list_数组=分解(“,”,$post_series_list);
$post_series_serial_number=array();
foreach($key=>value的post\u系列\u列表\u数组){
$serial\u number=get\u post\u meta($value,“sitepoint postseries序号”,true);
$post_series_serial_number[$value]=$serial_number;
}
asort($post\u series\u serial\u number);
$finalArray=array();
foreach($keyPostID=>$valueID的post\U序列号){
if('publish'==获取发布状态($keyposted)){
$finalArray[$keyPostID]=$keyPostID;
}
}
$html=“”;
foreach($finalArray作为$key=>$value){
$post=获取post($key);
$title=$post->post\u title;
$html=$html.“”;
}
$html=$html.“
”;
返回$content.$html;
}
添加内容过滤器(“内容过滤器”、“站点点”发布内容过滤器);
你能回显get_post_状态(get_the_ID())并让我知道发布或发布的内容吗?即使是已删除的帖子也会获得发布你能再次检查帖子类型slug吗。如果您的帖子被删除,则其状态必须为垃圾。出现问题,请检查slug,而不是get_the_ID(),请使用静态ID检查发生了什么。slug是好的。创建此文章系列和保存文章时,整个代码中一定有一些错误。如果删除的文章在垃圾箱中,则文章标题可见;如果我从垃圾中永久删除,存档列表中会生成一篇空帖子。你检查过我的最后评论吗?我知道我能解决的问题是什么。该站点没有bug我最近更改了代码。我敢肯定这一次一定对你有用。