ayuda append_content
-
16-10-2019 - |
Pregunta
Tengo una función en mi append_the_content($content)
plugin de esto se utiliza para mostrar mi función dentro del poste, pero está llegando antes del post, quiero hacer después de la entrada, para este he intentado este código, pero entonces también su no viene
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
}
¿Cómo puedo hacer que después de la entrada ???
Solución
Editado, probar este
<?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
}
?>
Otros consejos
Los más probable es que su función the_twitter_feed()
es echo
resultados en lugar de return
ing ellos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a wordpress.stackexchange