为类别分配默认的帖子类型

时间:2015-02-26 作者:Robodashy

这件事已经困扰了我好几天了,所以我非常感谢你能给我的任何帮助。

Problem overview:

我有一个插件,每当有新视频上传到YouTube频道时,它会自动创建帖子并指定类别“YouTube”。这部分很好用。然而,我也希望这篇文章被指定为“视频”类型的文章。该插件不允许这种类型的自定义,因此必须在php中完成。

Where I\'ve looked: (包括那些喜欢说“你读过论坛了吗?”)

WordPress Codex Set Post Format

WordPress Codex In Category

WordPress Stack Exchange 1

WordPress Stack Exchange 2

What I\'ve tried:

几次不同的尝试并没有给我带来任何结果(也不是白屏上的死亡我,所以这是一个奖励?)

1: (不确定我需要告诉该函数在哪里运行)

//* If post has category YouTube - set post type to video
function default_post_type($post_id) {
  // check autosave
  if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE) {
    return $post_id;

    if (in_category(\'YouTube\')) {
        set_post_format($post_id, \'video\');
    }
  }
}
2:(有点混淆,因为……原因?)

//* If post has category YouTube - set post type to video
// check autosave
if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE) {
  return $post_id;

  function default_post_type($post_id) {
    if (in_category(\'YouTube\')) {
        set_post_format($post_id, \'video\');
    }
  }
}
3:(于是我想“为什么要使用函数呢?”)

//* If post has category YouTube - set post type to video
if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE) {
  return $post_id;

  if (in_category(\'YouTube\', $post_id)) {
    set_post_format($post_id, \'video\');
  }
}
感谢您的帮助,即使您能告诉我为什么我所做的是错误的。谢谢

2 个回复
最合适的回答,由SO网友:ngearing 整理而成

我也希望这篇文章被指定为“视频”类型的文章。

你不能只是将一篇文章更改为不同的文章类型。“帖子类型”和“帖子格式”之间有区别。

从您的示例中,我假设您希望按照codex更改“Post格式”http://codex.wordpress.org/Function_Reference/set_post_format, 您需要将该代码粘贴到函数中。php。然后在模板中调用该函数。例如:

<!-- Loop Start here -->

    //* If post has category YouTube - set post type to video
    default_post_type($post_id) {

<!-- Loop End -->

SO网友:Robodashy

对于其他有此问题的人-工作代码如下所示(放在functions.php文件中):

function default_post_type($post_id) {
  if (in_category(\'YouTube\')) {
    set_post_format($post_id, \'video\');
  }
}
add_action( \'publish_post\', \'default_post_type\' );
快乐的文字处理

结束

相关推荐

通过unctions.php删除页面时间戳,使其不会显示在Google搜索结果描述中

我想通过函数从页面(不是帖子)中删除上次更新/上次修改的日期。php(这可以通过使挂钩为空来实现吗?)目标是删除因日期修改代码而显示的google搜索结果描述日期时间戳。我只希望该函数在页面上运行(因为页面上次更新/创建的时间通常无关紧要)。我意识到这可以通过修改页面模板中的底层代码来实现,但这种方法更容易实现。谢谢