WordPress PHP插件 - 通过save_post命令发布到外部网站

时间:2011-02-23 00:29:54

标签: php wordpress hook wordpress-plugin

我经常使用stackoverflow,只是在google中发现了这个,Nice:D

那么, 我想保存我从wordpress写到我的第三个(OEXChangeble)网站的所有帖子,同时我也需要将信息发送到我的网站,开发一个插件iguess

我基本上需要永久链接(并且我能够从我的wesite中提取其余的参数),但如果我能获得标题,标签,永久链接和描述(或者某些它)

据我的谷歌研究所了解,我需要做的就是添加类似

的内容
<?php

//header of plugin   
function myFunctionThatSendsMyWebsite($url){
// procedure containing a file_get_contents('myqwebsite?url=') request to my website
}
add_action('page_post', 'myFunctionThatSendsMyWebsite', $permalink));

?>

我有问题,你找到我遗漏的变量的名称(标记为???)。我知道$ post包含所有objet,如何从中提取信息(如果有的话),或者如果它很复杂,那么我将通过永久链接获得

任何提示?

谢谢!

3 个答案:

答案 0 :(得分:1)

1)虽然这没有利用save_post功能,但您甚至可以使用此代码在完全独立的网站上显示博客帖子,只要它位于同一台服务器上并且您具有对WordPress的文件系统访问权限原始网站上的目录。只需修改此页面第一个块中的require()即可使用WordPress安装的完整路径:

 <?php
 // Include WordPress 
 define('WP_USE_THEMES', false);
 require('/var/www/example.com/wordpress/wp-load.php');
 query_posts('showposts=1');
 ?>

使用while循环定位帖子:

 <?php while (have_posts()): the_post(); ?>
 <?php endwhile; ?>

如果您想指定要显示的帖子的哪些部分使用此代码:

<?php while (have_posts()): the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_excerpt(); ?>
<p><a href="<?php the_permalink(); ?>">Read more...</a></p>
<?php endwhile; ?>

2)如何使用wordpress博客中的rss feed?

以下代码将显示您的Feed标题列表,其中包含指向原始WordPress帖子的超链接:

<?php //  Load the XML file into a Simple XML object
$filename = http://feeds.feedburner.com/<em>yourfeedname</em>";
$feed = simplexml_load_file($filename);

//  Iterate through the list and create the unordered list
echo "<ul>";
foreach ($feed->channel->item as $item) {
echo "<li><a href='" . $item->link . "'>" . $item->title . "</a></li>";
}
echo "</ul>";
echo "<li>" . $item->description . "</li>";
?>

3)Feedburner有一个名为BuzzBoost的免费功能,您可以在常规HTML网站中显示您的帖子,一旦激活,您只需将他们提供的脚本复制到您希望列表显示的HTML中。从您的feedburner帐户,您可以调整一些元素,如博客标题是否应该出现,日期的格式等...

您还可以使用常规CSS在您现有的CSS网站中设置输出样式。

在这里查看Feedburner: https://www.google.com/accounts/ServiceLogin?service=feedburner&continue=http%3A%2F%2Ffeedburner.google.com%2Ffb%2Fa%2Fmyfeeds&gsessionid=5q8jqacBluH1-AnXp08ZFw

答案 1 :(得分:1)

根据此link,这应该有效,帖子ID会自动发送到此功能,您可以从帖子ID中获得所需的anything

function myFunctionToSendPost($post_ID)  {
   $post = get_post($post_ID); 
   $title = $post->post_title;
   $content = $post->post_content;
   $permalink = get_permalink($post_ID);   
   ...

   sendToYourServer($params);

   return $post_ID;
}

add_action('publish_post', 'myFunctionToSendPost');

BTW,发布帖子时会调用此函数,您可以将其更改为

保存时发生
add_action('save_post', 'myFunctionToSendPost');

将这些行添加到主题的functions.php文件中。

答案 2 :(得分:0)

您是否尝试在首次发布帖子时将帖子的副本保存在其他位置?或者在每个页面视图上?

您可以通过编写实现save_post挂钩的插件来保存帖子时触发它:

http://codex.wordpress.org/Plugin_API/Action_Reference

要在每个页面上执行此操作,您可能会在页面上编写带有过滤器挂钩的插件(如果它是您希望其他人使用的内容),或者它只是一个网站,您可以将其添加到您的主题。

但是......你确定要这么做吗?您的keepyourlinks网站似乎可以更好地实施为更新服务:http://codex.wordpress.org/Update_Services