Version Description
Download this release
Release Info
Developer | codeinwp |
Plugin | Revive Old Posts – Auto Post to Social Media |
Version | 7.2 |
Comparing to | |
See all releases |
Code changes from version 7.1 to 7.2
- inc/core.php +132 -38
- readme.txt +21 -16
- tweet-old-post.php +2 -2
inc/core.php
CHANGED
@@ -4,6 +4,11 @@ require_once(ROPPLUGINPATH."/inc/config.php");
|
|
4 |
// RopTwitterOAuth class
|
5 |
require_once(ROPPLUGINPATH."/inc/oAuth/twitteroauth.php");
|
6 |
|
|
|
|
|
|
|
|
|
|
|
7 |
if (!class_exists('CWP_TOP_Core')) {
|
8 |
class CWP_TOP_Core {
|
9 |
|
@@ -162,7 +167,59 @@ if (!class_exists('CWP_TOP_Core')) {
|
|
162 |
return $returnedPost;
|
163 |
}
|
164 |
|
165 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
{
|
167 |
global $wpdb;
|
168 |
// Generate the Tweet Post Date Range
|
@@ -177,6 +234,9 @@ if (!class_exists('CWP_TOP_Core')) {
|
|
177 |
// Get post categories set.
|
178 |
// $postQueryCategories = $this->getTweetCategories();
|
179 |
$excludedIds = "";
|
|
|
|
|
|
|
180 |
$tweetedPosts = get_option("top_opt_already_tweeted_posts");
|
181 |
if(!is_array($tweetedPosts)) $tweetedPosts = array();
|
182 |
|
@@ -184,6 +244,7 @@ if (!class_exists('CWP_TOP_Core')) {
|
|
184 |
|
185 |
$tweetedPosts = array();
|
186 |
}
|
|
|
187 |
$postQueryExcludedPosts = $this->getExcludedPosts();
|
188 |
$postQueryExcludedPosts = explode (',',$postQueryExcludedPosts);
|
189 |
$excluded = array_merge($tweetedPosts,$postQueryExcludedPosts);
|
@@ -196,9 +257,16 @@ if (!class_exists('CWP_TOP_Core')) {
|
|
196 |
SELECT {$wpdb->prefix}posts.ID
|
197 |
FROM {$wpdb->prefix}posts
|
198 |
LEFT JOIN {$wpdb->prefix}term_relationships ON ({$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id)
|
199 |
-
WHERE 1=1
|
200 |
-
|
201 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
|
203 |
// If there are no categories set, select the post from all.
|
204 |
//if(!empty($postQueryCategories)) {
|
@@ -210,7 +278,7 @@ if (!class_exists('CWP_TOP_Core')) {
|
|
210 |
SELECT object_id
|
211 |
FROM {$wpdb->prefix}term_relationships
|
212 |
INNER JOIN {$wpdb->prefix}term_taxonomy ON ( {$wpdb->prefix}term_relationships.term_taxonomy_id = {$wpdb->prefix}term_taxonomy.term_taxonomy_id )
|
213 |
-
WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}))) ";
|
214 |
}
|
215 |
|
216 |
if(!empty($excluded)) {
|
@@ -218,17 +286,38 @@ WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}
|
|
218 |
$query .= "AND ( {$wpdb->prefix}posts.ID NOT IN ({$excluded})) ";
|
219 |
}
|
220 |
if(!empty($somePostType)){
|
221 |
-
|
222 |
$somePostType = explode(',',$somePostType);
|
223 |
$somePostType = "'".implode("','",$somePostType)."'";
|
224 |
}
|
225 |
-
|
226 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
GROUP BY {$wpdb->prefix}posts.ID
|
228 |
order by RAND() limit 50
|
229 |
";
|
230 |
|
231 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
|
233 |
if(count($returnedPost) > $tweetCount) {
|
234 |
$rand_keys = array_rand( $returnedPost, $tweetCount );
|
@@ -317,17 +406,14 @@ WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}
|
|
317 |
|
318 |
$returnedPost = $this->getTweetsFromDBbyID($byID);
|
319 |
}else{
|
320 |
-
$returnedPost = $this->getTweetsFromDB();
|
321 |
if(!is_array($returnedPost)) return false;
|
322 |
}
|
323 |
if (count($returnedPost) == 0 ) {
|
324 |
self::addNotice(__('There is no suitable post to tweet make sure you excluded correct categories and selected the right dates.','tweet-old-post'),'error');
|
325 |
}
|
326 |
-
$done = get_option("top_opt_already_tweeted_posts");
|
327 |
-
if(!is_array($done) || get_option('top_opt_tweet_multiple_times')=="on" ) $done = array();
|
328 |
$users = $this->getUsers();
|
329 |
foreach($returnedPost as $post){
|
330 |
-
if(in_array($post->ID,$done)) continue;
|
331 |
$oknet = false;
|
332 |
foreach($users as $u){
|
333 |
if($u['service'] == $ntk){
|
@@ -338,11 +424,7 @@ WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}
|
|
338 |
if(!$oknet) return false;
|
339 |
$finalTweet = $this->generateTweetFromPost($post,$ntk);
|
340 |
$this->tweetPost( $finalTweet, $ntk, $post );
|
341 |
-
|
342 |
-
if ($tweetedPosts=="") $tweetedPosts = array();
|
343 |
-
array_push($tweetedPosts, $post->ID);
|
344 |
-
update_option("top_opt_already_tweeted_posts", $tweetedPosts);
|
345 |
-
$done[] = $post->ID;
|
346 |
}
|
347 |
if ($byID===false) {
|
348 |
$this->scheduleTweet($ntk);
|
@@ -717,6 +799,13 @@ WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}
|
|
717 |
|
718 |
public function tweetPost($finalTweet,$network = 'twitter',$post)
|
719 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
720 |
$users = $this->getUsers();
|
721 |
foreach ($users as $user) {
|
722 |
if($network == $user['service'] ){
|
@@ -1256,14 +1345,12 @@ endif;
|
|
1256 |
}*/
|
1257 |
|
1258 |
// Generates the tweet date range based on the user input.
|
|
|
1259 |
public function getTweetPostDateRange()
|
1260 |
{
|
1261 |
-
|
1262 |
-
$limit = 9999;
|
1263 |
-
else
|
1264 |
-
$limit = intval(get_option('top_opt_max_age_limit'));
|
1265 |
|
1266 |
-
if( !is_int($
|
1267 |
self::addNotice(__("Incorect value for Maximum age of post to be eligible for sharing. Please check the value to be a number greater or equal than 0 ",'tweet-old-post'),'error');
|
1268 |
return false;
|
1269 |
}
|
@@ -1275,26 +1362,23 @@ endif;
|
|
1275 |
return false;
|
1276 |
|
1277 |
}
|
1278 |
-
if($
|
1279 |
-
$limit = 10*365;
|
1280 |
-
}
|
1281 |
-
if($limit < $min){
|
1282 |
self::addNotice(__("Maximum age of post to be eligible for sharing must be greater than Minimum age of post to be eligible for sharing. Please check the value to be a number greater or equal than 0 ",'tweet-old-post'),'error');
|
1283 |
return false;
|
1284 |
|
1285 |
}
|
1286 |
|
|
|
|
|
|
|
|
|
|
|
1287 |
|
|
|
|
|
|
|
|
|
1288 |
|
1289 |
-
$minLimit = time() - $min*24*60*60;
|
1290 |
-
$maxLimit = time() - $limit*24*60*60;
|
1291 |
-
|
1292 |
-
$minAgeLimit = date("Y-m-d H:i:s", $minLimit);
|
1293 |
-
$maxAgeLimit = date("Y-m-d H:i:s", $maxLimit);
|
1294 |
-
$dateQuery = array();
|
1295 |
-
$dateQuery['before'] = $maxAgeLimit;
|
1296 |
-
$dateQuery['after'] = $minAgeLimit;
|
1297 |
-
$dateQuery['inclusive'] = true;
|
1298 |
return $dateQuery;
|
1299 |
|
1300 |
|
@@ -2111,7 +2195,14 @@ endif;
|
|
2111 |
'top_opt_tweet-multiple-times' => 'off',
|
2112 |
'cwp_top_logged_in_users' => '',
|
2113 |
'top_fb_token' =>'',
|
2114 |
-
'top_opt_post_formats' =>''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2115 |
);
|
2116 |
|
2117 |
foreach ($defaultOptions as $option => $defaultValue) {
|
@@ -2599,7 +2690,10 @@ endif;
|
|
2599 |
|
2600 |
add_filter("rop_users_filter",array($this,"rop_users_filter_free"),1,1);
|
2601 |
|
2602 |
-
|
|
|
|
|
|
|
2603 |
|
2604 |
if(isset($_GET['debug']) ) {
|
2605 |
//$this->getNextTweetTime('twitter');
|
4 |
// RopTwitterOAuth class
|
5 |
require_once(ROPPLUGINPATH."/inc/oAuth/twitteroauth.php");
|
6 |
|
7 |
+
// Added by Ash/Upwork
|
8 |
+
define("ROP_IS_TEST", false);
|
9 |
+
// Added by Ash/Upwork
|
10 |
+
|
11 |
+
|
12 |
if (!class_exists('CWP_TOP_Core')) {
|
13 |
class CWP_TOP_Core {
|
14 |
|
167 |
return $returnedPost;
|
168 |
}
|
169 |
|
170 |
+
// Added by Ash/Upwork
|
171 |
+
/**
|
172 |
+
* This will get the postIDs for the particular network
|
173 |
+
*/
|
174 |
+
private function getAlreadyTweetedPosts($ntk){
|
175 |
+
$array = array();
|
176 |
+
if(!$ntk) return $array;
|
177 |
+
|
178 |
+
$opt = get_option("top_opt_posts_buffer_" . $ntk, array());
|
179 |
+
if(!$opt || !is_array($opt)) return $array;
|
180 |
+
|
181 |
+
return $opt;
|
182 |
+
}
|
183 |
+
|
184 |
+
/**
|
185 |
+
* This will add the postID to the network buffer to note which post was posted on which network
|
186 |
+
*/
|
187 |
+
private function setAlreadyTweetedPosts($ntk, $postID){
|
188 |
+
if(!$ntk || !$postID) return;
|
189 |
+
$opt = get_option("top_opt_posts_buffer_" . $ntk, array());
|
190 |
+
if(!$opt || !is_array($opt)){
|
191 |
+
$opt = array();
|
192 |
+
}
|
193 |
+
$opt[] = $postID;
|
194 |
+
|
195 |
+
|
196 |
+
update_option("top_opt_posts_buffer_" . $ntk, $opt);
|
197 |
+
}
|
198 |
+
|
199 |
+
/**
|
200 |
+
* This will clear the network buffer
|
201 |
+
*/
|
202 |
+
private function clearAlreadyTweetedPosts($ntk){
|
203 |
+
if(!$ntk) return;
|
204 |
+
delete_option("top_opt_posts_buffer_" . $ntk);
|
205 |
+
}
|
206 |
+
|
207 |
+
/**
|
208 |
+
* This is a test method that will be fired on admin_init. Only to be used for testing.
|
209 |
+
* In production, this function will just return harmlessly
|
210 |
+
*/
|
211 |
+
public function doTestAction(){
|
212 |
+
if(!ROP_IS_TEST) return;
|
213 |
+
|
214 |
+
$networks = array("twitter", "facebook", "linkedin", "tumblr");
|
215 |
+
$ntk = $networks[array_rand($networks)];
|
216 |
+
for($x = 0; $x < rand(0,5); $x++) $this->setAlreadyTweetedPosts($ntk, rand(0,100));
|
217 |
+
echo "<pre>network=".$ntk.print_r($this->getAlreadyTweetedPosts($ntk),true). "</pre>";
|
218 |
+
}
|
219 |
+
|
220 |
+
// Added by Ash/Upwork
|
221 |
+
|
222 |
+
public function getTweetsFromDB($ntk=null, $clearNetworkBuffer=false)
|
223 |
{
|
224 |
global $wpdb;
|
225 |
// Generate the Tweet Post Date Range
|
234 |
// Get post categories set.
|
235 |
// $postQueryCategories = $this->getTweetCategories();
|
236 |
$excludedIds = "";
|
237 |
+
// Added by Ash/Upwork
|
238 |
+
$tweetedPosts = $this->getAlreadyTweetedPosts($ntk);
|
239 |
+
/*
|
240 |
$tweetedPosts = get_option("top_opt_already_tweeted_posts");
|
241 |
if(!is_array($tweetedPosts)) $tweetedPosts = array();
|
242 |
|
244 |
|
245 |
$tweetedPosts = array();
|
246 |
}
|
247 |
+
*/
|
248 |
$postQueryExcludedPosts = $this->getExcludedPosts();
|
249 |
$postQueryExcludedPosts = explode (',',$postQueryExcludedPosts);
|
250 |
$excluded = array_merge($tweetedPosts,$postQueryExcludedPosts);
|
257 |
SELECT {$wpdb->prefix}posts.ID
|
258 |
FROM {$wpdb->prefix}posts
|
259 |
LEFT JOIN {$wpdb->prefix}term_relationships ON ({$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id)
|
260 |
+
WHERE 1=1 ";
|
261 |
+
|
262 |
+
// Added by Ash/Upwork
|
263 |
+
if(array_key_exists("before", $dateQuery)){
|
264 |
+
$query .= "AND post_date >= '{$dateQuery['before']}' ";
|
265 |
+
}
|
266 |
+
if(array_key_exists("after", $dateQuery)){
|
267 |
+
$query .= "AND post_date <= '{$dateQuery['after']}' ";
|
268 |
+
}
|
269 |
+
// Added by Ash/Upwork
|
270 |
|
271 |
// If there are no categories set, select the post from all.
|
272 |
//if(!empty($postQueryCategories)) {
|
278 |
SELECT object_id
|
279 |
FROM {$wpdb->prefix}term_relationships
|
280 |
INNER JOIN {$wpdb->prefix}term_taxonomy ON ( {$wpdb->prefix}term_relationships.term_taxonomy_id = {$wpdb->prefix}term_taxonomy.term_taxonomy_id )
|
281 |
+
WHERE {$wpdb->prefix}term_taxonomy.term_id IN ({$postQueryExcludedCategories}))) ";
|
282 |
}
|
283 |
|
284 |
if(!empty($excluded)) {
|
286 |
$query .= "AND ( {$wpdb->prefix}posts.ID NOT IN ({$excluded})) ";
|
287 |
}
|
288 |
if(!empty($somePostType)){
|
|
|
289 |
$somePostType = explode(',',$somePostType);
|
290 |
$somePostType = "'".implode("','",$somePostType)."'";
|
291 |
}
|
292 |
+
|
293 |
+
// Added by Ash/Upwork
|
294 |
+
// Use a more efficient = condition than a costly IN condition if only one type is present
|
295 |
+
if(!empty($somePostType)){
|
296 |
+
if(strpos($somePostType, ",") !== FALSE){
|
297 |
+
$query .= "AND {$wpdb->prefix}posts.post_type IN ({$somePostType}) ";
|
298 |
+
}else{
|
299 |
+
$query .= "AND {$wpdb->prefix}posts.post_type = ({$somePostType}) ";
|
300 |
+
}
|
301 |
+
}
|
302 |
+
// Added by Ash/Upwork
|
303 |
+
|
304 |
+
$query .= "AND ({$wpdb->prefix}posts.post_status = 'publish')
|
305 |
GROUP BY {$wpdb->prefix}posts.ID
|
306 |
order by RAND() limit 50
|
307 |
";
|
308 |
|
309 |
+
$returnedPost = $wpdb->get_results( $query);
|
310 |
+
|
311 |
+
//self::addLog("rows " . count($returnedPost) . " from " . $query);
|
312 |
+
|
313 |
+
// Added by Ash/Upwork
|
314 |
+
// If the number of posts found is zero and a post can be shared multiple times, lets clear the buffer and fetch again
|
315 |
+
if($ntk && !$clearNetworkBuffer && count($returnedPost) == 0 && get_option('top_opt_tweet_multiple_times') == "on"){
|
316 |
+
//self::addLog("clearing for $ntk!!");
|
317 |
+
$this->clearAlreadyTweetedPosts($ntk);
|
318 |
+
return $this->getTweetsFromDB($ntk, true);
|
319 |
+
}
|
320 |
+
// Added by Ash/Upwork
|
321 |
|
322 |
if(count($returnedPost) > $tweetCount) {
|
323 |
$rand_keys = array_rand( $returnedPost, $tweetCount );
|
406 |
|
407 |
$returnedPost = $this->getTweetsFromDBbyID($byID);
|
408 |
}else{
|
409 |
+
$returnedPost = $this->getTweetsFromDB($ntk);
|
410 |
if(!is_array($returnedPost)) return false;
|
411 |
}
|
412 |
if (count($returnedPost) == 0 ) {
|
413 |
self::addNotice(__('There is no suitable post to tweet make sure you excluded correct categories and selected the right dates.','tweet-old-post'),'error');
|
414 |
}
|
|
|
|
|
415 |
$users = $this->getUsers();
|
416 |
foreach($returnedPost as $post){
|
|
|
417 |
$oknet = false;
|
418 |
foreach($users as $u){
|
419 |
if($u['service'] == $ntk){
|
424 |
if(!$oknet) return false;
|
425 |
$finalTweet = $this->generateTweetFromPost($post,$ntk);
|
426 |
$this->tweetPost( $finalTweet, $ntk, $post );
|
427 |
+
$this->setAlreadyTweetedPosts($ntk, $post->ID);
|
|
|
|
|
|
|
|
|
428 |
}
|
429 |
if ($byID===false) {
|
430 |
$this->scheduleTweet($ntk);
|
799 |
|
800 |
public function tweetPost($finalTweet,$network = 'twitter',$post)
|
801 |
{
|
802 |
+
// Added by Ash/Upwork
|
803 |
+
if(ROP_IS_TEST){
|
804 |
+
self::addLog("Not posting because ROP_IS_TEST is set");
|
805 |
+
return;
|
806 |
+
}
|
807 |
+
// Added by Ash/Upwork
|
808 |
+
|
809 |
$users = $this->getUsers();
|
810 |
foreach ($users as $user) {
|
811 |
if($network == $user['service'] ){
|
1345 |
}*/
|
1346 |
|
1347 |
// Generates the tweet date range based on the user input.
|
1348 |
+
// Corrected by Ash/Upwork: added a few efficiencies
|
1349 |
public function getTweetPostDateRange()
|
1350 |
{
|
1351 |
+
$max = intval(get_option('top_opt_max_age_limit'));
|
|
|
|
|
|
|
1352 |
|
1353 |
+
if( !is_int($max) ) {
|
1354 |
self::addNotice(__("Incorect value for Maximum age of post to be eligible for sharing. Please check the value to be a number greater or equal than 0 ",'tweet-old-post'),'error');
|
1355 |
return false;
|
1356 |
}
|
1362 |
return false;
|
1363 |
|
1364 |
}
|
1365 |
+
if($max > 0 && $min > 0 && $max < $min){
|
|
|
|
|
|
|
1366 |
self::addNotice(__("Maximum age of post to be eligible for sharing must be greater than Minimum age of post to be eligible for sharing. Please check the value to be a number greater or equal than 0 ",'tweet-old-post'),'error');
|
1367 |
return false;
|
1368 |
|
1369 |
}
|
1370 |
|
1371 |
+
$dateQuery = array();
|
1372 |
+
if($max > 0){
|
1373 |
+
$maxLimit = time() - $max*24*60*60;
|
1374 |
+
$dateQuery['before'] = date("Y-m-d H:i:s", $maxLimit);
|
1375 |
+
}
|
1376 |
|
1377 |
+
if($min > 0){
|
1378 |
+
$minLimit = time() - $min*24*60*60;
|
1379 |
+
$dateQuery['after'] = date("Y-m-d H:i:s", $minLimit);
|
1380 |
+
}
|
1381 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1382 |
return $dateQuery;
|
1383 |
|
1384 |
|
2195 |
'top_opt_tweet-multiple-times' => 'off',
|
2196 |
'cwp_top_logged_in_users' => '',
|
2197 |
'top_fb_token' =>'',
|
2198 |
+
'top_opt_post_formats' =>'',
|
2199 |
+
// Added by Ash/Upwork
|
2200 |
+
'top_opt_posts_buffer_twitter' => '',
|
2201 |
+
'top_opt_posts_buffer_facebook' => '',
|
2202 |
+
'top_opt_posts_buffer_linkedin' => '',
|
2203 |
+
'top_opt_posts_buffer_tumblr' => '',
|
2204 |
+
'top_opt_posts_buffer_xing' => '',
|
2205 |
+
// Added by Ash/Upwork
|
2206 |
);
|
2207 |
|
2208 |
foreach ($defaultOptions as $option => $defaultValue) {
|
2690 |
|
2691 |
add_filter("rop_users_filter",array($this,"rop_users_filter_free"),1,1);
|
2692 |
|
2693 |
+
// Added by Ash/Upwork
|
2694 |
+
// test action, only to be used for testing
|
2695 |
+
if(ROP_IS_TEST) add_action("admin_init", array($this, "doTestAction"));
|
2696 |
+
// Added by Ash/Upwork
|
2697 |
|
2698 |
if(isset($_GET['debug']) ) {
|
2699 |
//$this->getNextTweetTime('twitter');
|
readme.txt
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
Contributors: codeinwp,marius2012,marius_codeinwp,hardeepasrani,Madalin_Themeisle
|
3 |
Tags: admin, ajax, plugin, twitter, facebook, linkedin, automatic, tweet, share, wordpress, marketing, sharing, Tweet old post, Tweets,evergreen, Promote old post by tweeting about them, Twitter, Auto Tweet, Hashtags, Twitter Hashtags, Tweet Posts, Tweet, Post Tweets, Wordpress Twitter Plugin, Twitter Plugin, Tweet Selected Posts, Twitter, Promote Posts, Tweet Random Post, Share Post, Promote Post, Post Tweets, Wordpress Twitter, Drive Traffic, Tweet Selected Posts
|
4 |
Requires at least: 2.7
|
5 |
-
Tested up to: 4.4.
|
6 |
Stable tag: trunk
|
7 |
|
8 |
|
@@ -16,6 +16,19 @@ This plugin helps you to keeps your old posts alive by sharing them and driving
|
|
16 |
|
17 |
For updates follow https://twitter.com/themeisle If you have anything you can let us know <a href="https://themeisle.com/contact/?utm_source=readmetop&utm_medium=announce&utm_campaign=top">here</a>.
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
> ### Why to upgrade to PRO ?
|
20 |
|
21 |
> Using the <a rel="friend" href="https://themeisle.com/plugins/tweet-old-post-pro/">PRO version</a> of the plugin you will unleash the most important functionality : images in tweets . Using those your RT/CTR will go crazy.
|
@@ -29,20 +42,7 @@ For updates follow https://twitter.com/themeisle If you have anything you can le
|
|
29 |
> * Custom Schedule
|
30 |
> * Post to Xing / Tumblr
|
31 |
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
**Revive Old Post provides following features**
|
36 |
-
|
37 |
-
- Share new and old posts.
|
38 |
-
- Choose the time between posts.
|
39 |
-
- Choose the number of posts to share.
|
40 |
-
- Use hashtags to focus on topics.
|
41 |
-
- Include links back to your site.
|
42 |
-
- Exclude categories
|
43 |
-
- Exclude specific posts.
|
44 |
-
|
45 |
-
If you want to see a live demo of the plugin you can check <a href="http://www.youtube.com/watch?v=YOnlWmyO3VU">http://www.youtube.com/watch?v=YOnlWmyO3VU</a>.
|
46 |
|
47 |
|
48 |
= Translations =
|
@@ -119,6 +119,12 @@ https://themeisle.com/plugins/tweet-old-post-lite/
|
|
119 |
|
120 |
== Changelog ==
|
121 |
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
**New in v7.1**
|
123 |
|
124 |
* Fixed inconsistency in the schedule. Now posting is more accurate.
|
@@ -126,7 +132,6 @@ https://themeisle.com/plugins/tweet-old-post-lite/
|
|
126 |
|
127 |
|
128 |
**New in v7.0.8**
|
129 |
-
|
130 |
* Added facebook tutorial for facebook share.
|
131 |
* Fixed multisite issue for redirect url
|
132 |
* Making translation ready for new wordpress.org system
|
2 |
Contributors: codeinwp,marius2012,marius_codeinwp,hardeepasrani,Madalin_Themeisle
|
3 |
Tags: admin, ajax, plugin, twitter, facebook, linkedin, automatic, tweet, share, wordpress, marketing, sharing, Tweet old post, Tweets,evergreen, Promote old post by tweeting about them, Twitter, Auto Tweet, Hashtags, Twitter Hashtags, Tweet Posts, Tweet, Post Tweets, Wordpress Twitter Plugin, Twitter Plugin, Tweet Selected Posts, Twitter, Promote Posts, Tweet Random Post, Share Post, Promote Post, Post Tweets, Wordpress Twitter, Drive Traffic, Tweet Selected Posts
|
4 |
Requires at least: 2.7
|
5 |
+
Tested up to: 4.4.2
|
6 |
Stable tag: trunk
|
7 |
|
8 |
|
16 |
|
17 |
For updates follow https://twitter.com/themeisle If you have anything you can let us know <a href="https://themeisle.com/contact/?utm_source=readmetop&utm_medium=announce&utm_campaign=top">here</a>.
|
18 |
|
19 |
+
Revive Old Post is offered by ThemeIsle and CodeinWP where we blog about different topics like : news,<a href="http://www.codeinwp.com/blog/best-business-corporate-wordpress-themes/" rel="friend" > business themes </a> or <a href="http://justfreethemes.com/" rel="friend">free themes</a>
|
20 |
+
|
21 |
+
**Revive Old Post provides following features**
|
22 |
+
|
23 |
+
- Share new and old posts.
|
24 |
+
- Choose the time between posts.
|
25 |
+
- Choose the number of posts to share.
|
26 |
+
- Use hashtags to focus on topics.
|
27 |
+
- Include links back to your site.
|
28 |
+
- Exclude categories
|
29 |
+
- Exclude specific posts.
|
30 |
+
|
31 |
+
|
32 |
> ### Why to upgrade to PRO ?
|
33 |
|
34 |
> Using the <a rel="friend" href="https://themeisle.com/plugins/tweet-old-post-pro/">PRO version</a> of the plugin you will unleash the most important functionality : images in tweets . Using those your RT/CTR will go crazy.
|
42 |
> * Custom Schedule
|
43 |
> * Post to Xing / Tumblr
|
44 |
|
45 |
+
Some of you reported some scheduling issues, after investigation work looks like this is coming from some web hosts, make sure you check-out this post about <a rel="friend" href="http://www.codeinwp.com/blog/best-wordpress-shared-hosting-providers/">shared WordPress hosting</a>, which should help you pick a good one.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
|
48 |
= Translations =
|
119 |
|
120 |
== Changelog ==
|
121 |
|
122 |
+
**New in v7.2**
|
123 |
+
|
124 |
+
* Fixed randomization algorithm, preventing sharing of same post twice until the end of cycle.
|
125 |
+
* Fixed date range selection when both values are 0
|
126 |
+
|
127 |
+
|
128 |
**New in v7.1**
|
129 |
|
130 |
* Fixed inconsistency in the schedule. Now posting is more accurate.
|
132 |
|
133 |
|
134 |
**New in v7.0.8**
|
|
|
135 |
* Added facebook tutorial for facebook share.
|
136 |
* Fixed multisite issue for redirect url
|
137 |
* Making translation ready for new wordpress.org system
|
tweet-old-post.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
# Plugin URI: https://themeisle.com/plugins/tweet-old-post-lite/
|
5 |
# Description: Wordpress plugin that helps you to keeps your old posts alive by sharing them and driving more traffic to them from twitter/facebook or linkedin. It also helps you to promote your content. You can set time and no of posts to share to drive more traffic.For questions, comments, or feature requests, <a href="https://themeisle.com/contact/?utm_source=plugindesc&utm_medium=announce&utm_campaign=top">contact </a> us!
|
6 |
# Author: ThemeIsle
|
7 |
-
# Version: 7.
|
8 |
# Author URI: https://themeisle.com/
|
9 |
# Text Domain: tweet-old-post
|
10 |
# Domain Path: /languages
|
@@ -18,7 +18,7 @@ define("ROPJSFILE", plugins_url('js/master.js',__FILE__ ));
|
|
18 |
define("ROPJSCOUNTDOWN", plugins_url('js/countdown.js',__FILE__ ));
|
19 |
define("ROPPLUGINBASENAME", plugin_basename(__FILE__));
|
20 |
define('ROP_TOP_FB_API_VERSION','v2.0');
|
21 |
-
define('ROP_VERSION','7.
|
22 |
// Require core.
|
23 |
require_once(ROPPLUGINPATH."/inc/core.php");
|
24 |
// Require core.
|
4 |
# Plugin URI: https://themeisle.com/plugins/tweet-old-post-lite/
|
5 |
# Description: Wordpress plugin that helps you to keeps your old posts alive by sharing them and driving more traffic to them from twitter/facebook or linkedin. It also helps you to promote your content. You can set time and no of posts to share to drive more traffic.For questions, comments, or feature requests, <a href="https://themeisle.com/contact/?utm_source=plugindesc&utm_medium=announce&utm_campaign=top">contact </a> us!
|
6 |
# Author: ThemeIsle
|
7 |
+
# Version: 7.2
|
8 |
# Author URI: https://themeisle.com/
|
9 |
# Text Domain: tweet-old-post
|
10 |
# Domain Path: /languages
|
18 |
define("ROPJSCOUNTDOWN", plugins_url('js/countdown.js',__FILE__ ));
|
19 |
define("ROPPLUGINBASENAME", plugin_basename(__FILE__));
|
20 |
define('ROP_TOP_FB_API_VERSION','v2.0');
|
21 |
+
define('ROP_VERSION','7.2');
|
22 |
// Require core.
|
23 |
require_once(ROPPLUGINPATH."/inc/core.php");
|
24 |
// Require core.
|