自动更新Wordpress中的自定义帖子

时间:2018-01-10 14:44:12

标签: php wordpress

在Wordpress中我使用的是LearnPress插件。这个插件创建了一个名为lp_lesson的自定义帖子(据我所知)。我还使用了一个名为Advanced Custom Fields PRO的插件。此插件允许在每个lp_lesson上创建其他字段。我添加的自定义字段有wpk_role_options的名称(我猜是变量名称)。

我想要做的是提出一个循环遍历每个for-loop的{​​{1}},并使用lp_lesson或{{检查与该课程相关联的category 1}}。如果符合条件,我想在switch自定义字段中添加文字。

我认为我在大多数情况下都有完整的逻辑,但更多的是我难以理解的语法。

非常感谢任何帮助!

到目前为止我收集了什么:

if else

1 个答案:

答案 0 :(得分:2)

您正在使用“WordPress循环”语法,该语法用于在公共端显示帖子列表。但是,你真的不想在管理员端使用它。

你需要使用普通的php循环。您可能还想使用更快更简单的get_posts函数:

//Get post type of lp_lesson
$args = array(
    'post_type' => 'lp_lesson'
);
$posts = get_posts($args);

$categories = get_categories();

for($posts as $post) {

    foreach($categories as $cat) {
       if ( in_category( $cat->term_id, $post) ){
          // This post has the category 
       }
    }

    // get/check for a post custom field
    $field_value = get_post_meta( $post->ID, 'meta_name', 1);

    // or you can also update this post's custom field
    update_post_meta( $post->ID, 'meta_name', 'new_value' );

  }
}

我真的不知道为什么要循环这些类别。如果您只是检查特定类别,您可以围绕$ categories事物取出整个foreach。