append_content help
-
16-10-2019 - |
سؤال
i have a function in my plugin append_the_content($content)
this is used to display my function inside the post, but it is coming before the post, i want to make it after the post, for this i tried this code, but then too its not coming
function parse_twitter_feed($feed, $prefix, $tweetprefix, $tweetsuffix, $suffix) {
$feed = str_replace("<", "<", $feed);
$feed = str_replace(">", ">", $feed);
$clean = explode("<content type=\"html\">", $feed);
$amount = count($clean) - 1;
echo $prefix;
for ($i = 1; $i <= $amount; $i++) {
$cleaner = explode("</content>", $clean[$i]);
echo $tweetprefix;
echo $cleaner[0];
echo $tweetsuffix;
}
echo $suffix;
}
function the_twitter_feed($username) {
// $username = "Mba_"; // Your twitter username.
$limit = "5"; // Number of tweets to fetch.
/* These prefixes and suffixes will display before and after the entire block of tweets. */
$prefix = ""; // Prefix - some text you want displayed before all your tweets.
$suffix = ""; // Suffix - some text you want displayed after all your tweets.
$tweetprefix = "<b>".$username.": </b> "; // Tweet Prefix - some text you want displayed before each tweet.
$tweetsuffix = "<br>"; // Tweet Suffix - some text you want displayed after each tweet.
$feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=" . $limit;
$twitterFeed = get_transient($feed);
if (!$twitterFeed) {
$twitterFeed = wp_remote_fopen($feed);
set_transient($feed, $twitterFeed, 3600); // cache for an hour
}
if ($twitterFeed)
parse_twitter_feed($twitterFeed, $prefix, $tweetprefix, $tweetsuffix, $suffix);
}
function append_the_content($content) {
if(get_option('tweetID')!=null){
$content .= "<div class='post'><p>".the_twitter_feed(get_option('tweetID'))."</p></div>";
echo $content;
}
else{
return $content;
}
}
add_filter('the_content', 'append_the_content');
add_action('admin_menu','tweet_fetch');
function tweet_fetch(){
add_options_page('Tweet','Tweet', 8, 'tweet', 'tweet_fetcher');
}
function tweet_fetcher(){
?>
<h2>Tweet Fetcher options</h2>
<table>
<form method='post' action='options.php' style='margin:0 20px;'>
<?php wp_nonce_field('update-options'); ?>
<tr><td>Twitter UserID:</td><td><input type="text" name="tweetID" value="<?php echo get_option('tweetID'); ?>" <?php echo get_option('tweetID'); ?> />
</td></tr>
<input type='hidden' name='action' value='update'/>
<input type='hidden' name='page_options' value='tweetID'/>
<tr><td><p class='submit'>
<input type='submit' name='Submit' value='Update Options »'/>
</p></td></tr>
</table>
</form>
<?php
}
how can i make it after the post???
المحلول
Edited, try this
<?php
function parse_twitter_feed($feed, $prefix, $tweetprefix, $tweetsuffix, $suffix) {
$feed = str_replace("<", "<", $feed);
$feed = str_replace(">", ">", $feed);
$clean = explode("<content type=\"html\">", $feed);
$amount = count($clean) - 1;
$output = $prefix;
for ($i = 1; $i <= $amount; $i++) {
$cleaner = explode("</content>", $clean[$i]);
$output .= $tweetprefix;
$output .= $cleaner[0];
$output .= $tweetsuffix;
}
$output .= $suffix;
return $output;
}
function the_twitter_feed($username) {
// $username = "Mba_"; // Your twitter username.
$limit = "5"; // Number of tweets to fetch.
/* These prefixes and suffixes will display before and after the entire block of tweets. */
$prefix = ""; // Prefix - some text you want displayed before all your tweets.
$suffix = ""; // Suffix - some text you want displayed after all your tweets.
$tweetprefix = "<b>" . $username . ": </b> "; // Tweet Prefix - some text you want displayed before each tweet.
$tweetsuffix = "<br>"; // Tweet Suffix - some text you want displayed after each tweet.
$feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=" .
$limit;
$twitterFeed = get_transient($feed);
if (!$twitterFeed) {
$twitterFeed = wp_remote_fopen($feed);
set_transient($feed, $twitterFeed, 3600); // cache for an hour
}
if ($twitterFeed)
return parse_twitter_feed($twitterFeed, $prefix, $tweetprefix, $tweetsuffix, $suffix);
}
function append_the_content($content) {
if (get_option('tweetID') != null) {
$content .= "<div class='post'><p>" . the_twitter_feed(get_option('tweetID')) .
"</p></div>";
return $content;
} else {
return $content;
}
}
add_filter('the_content', 'append_the_content');
add_action('admin_menu', 'tweet_fetch');
function tweet_fetch() {
add_options_page('Tweet', 'Tweet', 8, 'tweet', 'tweet_fetcher');
}
function tweet_fetcher() {
?>
<h2>Tweet Fetcher options</h2>
<table>
<form method='post' action='options.php' style='margin:0 20px;'>
<?php
wp_nonce_field('update-options');
?>
<tr><td>Twitter UserID:</td><td><input type="text" name="tweetID" value="<?php
echo get_option('tweetID');
?>" <?php
echo get_option('tweetID');
?> />
</td></tr>
<input type='hidden' name='action' value='update'/>
<input type='hidden' name='page_options' value='tweetID'/>
<tr><td><p class='submit'>
<input type='submit' name='Submit' value='Update Options »'/>
</p></td></tr>
</table>
</form>
<?php
}
?>
نصائح أخرى
Most likely your the_twitter_feed()
function echo
es results instead of return
ing them.
لا تنتمي إلى wordpress.stackexchange