我正在使用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);
SO网友:Douglas.Sesar
如果插件按我认为的方式工作,您可以尝试更改gateway_set_post_format
正在将函数添加到save\\u post操作。
你的插件可能有更大的优先级,这会使它比你的插件启动得晚。
如果插件在函数运行之后才更改自定义字段值,那么这可以解释当前的行为。
add_action(\'save_post\', \'gateway_set_post_format\',999, 1);
我希望你能把它弄清楚。