post_content is empty

时间:2014-03-19 作者:user2300434

我正在尝试制作一些插件。这个插件是一种自动发布。

function new_post($title,$content)
{
$post = get_post($id);
$feat_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
$title = $post->post_title;
$content = $post->post_content;
echo $title;
echo $content;
}
add_action( \'publish_post\', \'new_post\' );
我只能看到$title, $content 为空。

我已经检查了mysql的草稿状态,我可以看到post_title 字段有数据,但post_content 没有数据。

post_content 单击“发布”或“自动保存”时有数据。我认为这个插件比wordpress插入数据过程运行得更快。

该插件必须在发布后运行或以不同的方式运行。

如何修复此代码。。。

我希望wordpress开发者能帮上忙。

1 个回复
SO网友:Brian KD

首先,您需要在函数中传递post$id,而不是$title和$content:

function new_post($id)
然后,您的功能可能会回显内容-如果浏览器中的源代码显示为空,请通过“查看页面源代码”在浏览器中检查源代码。

但是,如果您使用echo $content 然后,短代码、WordPress的格式化和密码保护功能都将被破坏。您需要这样包装您的通话:

echo apply_filters(\'the_content\', $post->post_content);
有关此的详细信息herehere

function new_post($post_ID)
{
$post = get_post($post_ID);
$feat_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
$title = $post->post_title;
$content = $post->post_content;
echo $title;
echo apply_filters(\'the_content\', $content);
}
add_action( \'publish_post\', \'new_post\' );
此外,如果您试图获取更新/更改的信息,它将存储在$_POST 变量但如果你从$post->post_content 这是在保存/发布/更新帖子之前已存储在数据库中的旧信息。有时,您可能还需要一个条件语句来检查这是您第一次发布页面还是正在更新页面。类似这样:

if( ( $_POST[\'post_status\'] == \'publish\' ) && ( $_POST[\'original_post_status\'] != \'publish\' ) ) {
// code to execute here...
}

结束

相关推荐

Plugins_url函数混合了系统路径和URL

在我的WordPress小部件中,我使用以下代码:wp_register_script(\'jquery-ui.widget\', plugins_url(\'assets/js/jquery-ui-1.9.2.widget.js\', dirname( __FILE__ ))); 不幸的是,代码给了我一个无效的URL,它与我的系统路径混合在一起:http://test.dev/wp-content/plugins/C:/projects/wordpress/plugins/assets/js/