Плагин WordPress PHP - публикация на внешний сайт с помощью команды save_post - PullRequest
2 голосов
/ 23 февраля 2011

Я очень часто использую stackoverflow и только что узнал в Google об этом, Ницца: D

Ну, я хочу сохранить все свои посты, которые я пишу из WordPress, на свой 3-й (OEXChangeble) сайт, а также нав то же время, поэтому мне нужно отправить информацию на мой веб-сайт, разрабатывая плагин iguess

Мне нужно в основном Постоянная ссылка (и я смог бы извлечь остальные параметры из моегоwesite), но было бы лучше, если бы я мог получить заголовок, теги, постоянную ссылку и описание (или некоторые из них)

Я понял из своего исследования Google, что все, что мне нужно сделать, это добавить что-то вроде

<?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 содержит все объекты, как извлечь из них информацию (если она есть) или, если она сложная, для меня будет достаточно permalink

Любой совет?

Спасибо!

Ответы [ 3 ]

1 голос
/ 25 февраля 2011

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) Как насчет использования RSS-каналов из вашего WordPress-блога?

В следующем коде будет отображаться список названий ваших фидов с описаниями, включая гиперссылку на оригинальные сообщения 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 вы можете настроить некоторые элементы, такие как: должен ли отображаться заголовок блога, формат даты и т. Д.

Проверьте FeedBurner здесь: https://www.google.com/accounts/ServiceLogin?service=feedburner&continue=http%3A%2F%2Ffeedburner.google.com%2Ffb%2Fa%2Fmyfeeds&gsessionid=5q8jqacBluH1-AnXp08ZFw

1 голос
/ 04 марта 2011

согласно этой ссылке , это должно работать, идентификатор записи будет автоматически отправлен в эту функцию, и вы можете получить все, что вы хотите из идентификатора записи.

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');

Кстати, эта функция вызывается при публикации сообщения. Вы можете изменить ее на случай, если

add_action('save_post', 'myFunctionToSendPost');

добавит эти строки в файл functions.php вашей темы.

0 голосов
/ 23 февраля 2011

Вы пытаетесь сохранить копию сообщения в другом месте, когда они впервые публикуют сообщение?Или при каждом просмотре страницы?

Вы можете запустить его, когда сообщение будет сохранено, написав плагин, который реализует ловушку save_post:

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

Чтобы сделать это нана каждой странице вы, вероятно, захотите написать плагин с фильтром на странице (если это то, что вы хотите, чтобы другие люди использовали) или если это всего лишь один сайт, вы можете добавить его в свою тему.

Но... Вы уверены, что хотите это сделать?Похоже, ваш сайт keepyourlinks может быть лучше реализован как служба обновлений: http://codex.wordpress.org/Update_Services

...