如何删除所有WordPress帖子中的元值?

leonardeveloper

我正在写博客,我想添加一个横幅,这是一个特色文章。

但是我不确定如何只将一个帖子标记为“精选”,因此,如果将另一帖子标记为“精选”,则将旧帖子从显示为精选中删除。

我尝试使用ACF(高级自定义字段)复选框标记特色帖子,但是我的方法不正确。

这是我的代码。

<?php
global $post;

$myposts = get_posts( array(
    'posts_per_page'   => 1,
    'order'            => 'DESC',
    'numberposts'      => 1,
) );

if ( $myposts ) {
    foreach ( $myposts as $post ) : 
        setup_postdata( $post ); 
        if(get_field('featured_post')):
?>

一旦我标记了其他帖子的特色,就不会显示任何内容。

计划采用这种方法,但是我不知道如何删除旧的特色帖子。

达摩克洛斯

ACF复选框/ True / False字段是一个很好的起点。从那里的解决方案将是...

  1. 勾搭acf/save_post动作
  2. 检查当前保存的帖子是否featured_post启用
  3. 如果启用,则取消设置先前精选文章上的“精选”标志
  4. 如果启用,则将帖子的ID存储为精选帖子的全局选项('mysites_featured_post')
  5. 呈现横幅后,从此选项获取特色帖子的ID

对于该选项,您可以做两件事:使用WP自己的update_option,或创建一个ACF选项页,其中的Post字段仅包含一个(精选)帖子。ACF选项页面的优势在于,您可以通过导航到选项页面在wp-admin中手动编辑精选帖子。

但是,我将使用WP进行演示update_option

function hookACFSavePost($post_id) {
  $marked_featured = get_field('featured_post', $post_id);
  if ($marked_featured) {
    // get previously featured post
    $prev_featured_post = get_option('mysites_featured_post', false);
    if (is_numeric($prev_featured_post)) {
      // disable featured flag on the previously featured post, for consistency:
      update_field('featured_post', false, $prev_featured_post);
    }
    // store this as the current featured post
    update_option('mysites_featured_post', $post_id, true);
  }
}
add_action('acf/save_post', 'hookACFSavePost', 20);

这样,我们已经实现了禁用先前选择的帖子(如果存在)上的“精选”复选框,并将新精选帖子的ID存储在“ mysites_featured_post”选项中。

要获取用于渲染横幅的特色帖子,您可以$post_id从选项中检索

$featured_post_id = get_option('mysites_featured_post', false);
if ($featured_post_id) {
  $post = get_post( $featured_post_id );
  // render the post('s ID)
  // ...
}

从不必遍历/查询所有帖子的元条目来查找当前具有特色的帖子的意义上说,此解决方案简单有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在wordpress中显示所有帖子元键和相同帖子ID的元值

来自分类Dev

如何在WordPress中获取具有特定元值的帖子的所有自定义术语?

来自分类Dev

如何显示WordPress中的所有帖子?

来自分类Dev

如何获取帖子类型的所有元值

来自分类Dev

如何获取帖子类型的所有元值

来自分类Dev

如何删除自定义帖子类型的所有元框?

来自分类Dev

如何在Wordpress中获取帖子名称下的所有帖子类别?

来自分类Dev

如何通过mysql在wordpress中获取所有类别的所有帖子?

来自分类Dev

如何删除Wordpress帖子中的侧边栏?

来自分类Dev

如何在wordpress中的两个元值范围之间获取帖子?

来自分类Dev

列出wordpress中的所有类别和所有帖子

来自分类Dev

通过$ wpdb获取所有帖子的元值

来自分类Dev

汇总特定类别中所有帖子的元值

来自分类Dev

通过$ wpdb获取所有帖子的元值

来自分类Dev

如何从特定值之前的数组中删除所有值

来自分类Dev

如何在WordPress管理员中获取所有帖子列表?

来自分类Dev

WordPress:如何在搜索结果中从$ wp_query获取所有帖子?

来自分类Dev

如何在WordPress中显示类别列表及其所有帖子?

来自分类Dev

如何在Gatsby中获取所有Wordpress帖子并显示标签

来自分类Dev

如何在WordPress管理员中获取所有帖子列表?

来自分类Dev

如何在wordpress中获取所有自定义帖子类型?

来自分类Dev

如何从帖子中检索所有评论?

来自分类Dev

创建“查看所有帖子”链接以显示来自WordPress中特定类别的所有帖子

来自分类Dev

如何从Divi的帖子元中删除文本“by”和“|”?

来自分类Dev

WordPress从最近的帖子中删除帖子

来自分类Dev

wordpress-所有帖子都包裹在div中

来自分类Dev

在WordPress的所有帖子页面加载中运行脚本

来自分类Dev

从Wordpress帖子中删除blockquote

来自分类Dev

删除WordPress中的重复帖子

Related 相关文章

  1. 1

    在wordpress中显示所有帖子元键和相同帖子ID的元值

  2. 2

    如何在WordPress中获取具有特定元值的帖子的所有自定义术语?

  3. 3

    如何显示WordPress中的所有帖子?

  4. 4

    如何获取帖子类型的所有元值

  5. 5

    如何获取帖子类型的所有元值

  6. 6

    如何删除自定义帖子类型的所有元框?

  7. 7

    如何在Wordpress中获取帖子名称下的所有帖子类别?

  8. 8

    如何通过mysql在wordpress中获取所有类别的所有帖子?

  9. 9

    如何删除Wordpress帖子中的侧边栏?

  10. 10

    如何在wordpress中的两个元值范围之间获取帖子?

  11. 11

    列出wordpress中的所有类别和所有帖子

  12. 12

    通过$ wpdb获取所有帖子的元值

  13. 13

    汇总特定类别中所有帖子的元值

  14. 14

    通过$ wpdb获取所有帖子的元值

  15. 15

    如何从特定值之前的数组中删除所有值

  16. 16

    如何在WordPress管理员中获取所有帖子列表?

  17. 17

    WordPress:如何在搜索结果中从$ wp_query获取所有帖子?

  18. 18

    如何在WordPress中显示类别列表及其所有帖子?

  19. 19

    如何在Gatsby中获取所有Wordpress帖子并显示标签

  20. 20

    如何在WordPress管理员中获取所有帖子列表?

  21. 21

    如何在wordpress中获取所有自定义帖子类型?

  22. 22

    如何从帖子中检索所有评论?

  23. 23

    创建“查看所有帖子”链接以显示来自WordPress中特定类别的所有帖子

  24. 24

    如何从Divi的帖子元中删除文本“by”和“|”?

  25. 25

    WordPress从最近的帖子中删除帖子

  26. 26

    wordpress-所有帖子都包裹在div中

  27. 27

    在WordPress的所有帖子页面加载中运行脚本

  28. 28

    从Wordpress帖子中删除blockquote

  29. 29

    删除WordPress中的重复帖子

热门标签

归档