使用自定义字段更改发布格式

时间:2012-10-18 作者:Herbie

我正在使用CF Post Formats 插件。但我遇到了一些麻烦,我不知道如何解决。以下是我希望能够做到的:

创建一个新的标准格式帖子,在\\u format\\u link\\u url自定义字段中输入url,如果自定义字段不为空,在保存/更新时,将帖子格式更改为“link”;否则,保持“标准”无论出于何种原因,我都无法使set\\u post\\u格式在这种情况下工作(可能有冲突的更新?)。我想这样做是因为我想继续使用Marsedit(不支持帖子格式)向我的博客提交内容。由于Marsedit确实支持自定义字段,我想我可以使用它们来自动更新帖子格式。任何帮助都将不胜感激。

Update: 好吧,我已经把这个做好了。它在管理web界面中运行良好。通过web界面,我可以创建一个带有url的链接帖子,这样可以很好地保存。我可以尝试将帖子更改为引用帖子,但在更新时,它会恢复为链接帖子(目前按预期)。我可以从自定义字段中删除url,更新后的帖子将成为标准帖子。

但是,当从Marsedit创建或更新链接帖子时,自定义字段将按其应有的方式进行设置,但帖子格式设置为标准格式。令人沮丧。下面是我创建的函数。我错过了什么?

function gateway_set_post_format( $post_id ) {
    $the_post_format = get_post_format( $post_id );
    if ( $the_post_format == \'link\' && empty($_POST[\'_format_link_url\'])) {
        set_post_format( $post_id, \'\' );
    }
    elseif ( !empty($_POST[\'_format_link_url\']) ) {
            set_post_format( $post_id, \'link\' );
    }
}
add_action(\'save_post\', \'gateway_set_post_format\',11, 1);

1 个回复
SO网友:Douglas.Sesar

如果插件按我认为的方式工作,您可以尝试更改gateway_set_post_format 正在将函数添加到save\\u post操作。

你的插件可能有更大的优先级,这会使它比你的插件启动得晚。

如果插件在函数运行之后才更改自定义字段值,那么这可以解释当前的行为。

add_action(\'save_post\', \'gateway_set_post_format\',999, 1);
我希望你能把它弄清楚。

结束

相关推荐

get_posts inside cron

Edited to rewrite my question我会尽量说清楚,因为我需要尽快解决这个问题。我禁用了WordPress的cron,并在我的服务器上添加了一个真正的cron作业来调用wp cron。php每天。但是,我调用的函数不起作用。代码执行似乎停止于get_posts, 如果我尝试使用WP_Query 班没有错误消息,之后的任何代码都不会执行。当我不添加时numberposts, 但它确实给了我5篇文章,这是numberposts的默认值。示例: $posts = get_posts( ar