Domanda

Ho fatto questa domanda in precedenza, che ha risolto il mio problema, ma ulteriori sto avendo ancora problema con esso,

Ho una funzione per tweets di visualizzazione di un utente, che recuperare da un campo personalizzato, il codice di campo personalizzato è perfetto funziona, perché quando ho echo the get_post_meta nel mio single.php ottengo il valore che viene immesso

ora la domanda è quando si tenta di recuperare il valore dal campo personalizzato a una funzione Twitter i tweet non sono venuta,

Ecco il mio codice:

function tweet(){

$doc = new DOMDocument();

if ( $meta =get_post_meta($post->ID, 'dbt_Username', true) ) { 
$feed = "http://twitter.com/statuses/user_timeline/$meta.rss"; 
$doc->load($feed); 
  $outer = "<ul>";
  $max_tweets = 5;    

  $i = 1;
  foreach ($doc->getElementsByTagName('item') as $node) {
    $tweet = $node->getElementsByTagName('title')->item(0)->nodeValue;


    $tweet = substr($tweet, stripos($tweet, ':') + 1);   


    $tweet = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', 
          '<a href="$1">$1</a>', $tweet);


    $tweet = preg_replace("/@([0-9a-zA-Z]+)/", 
          "<a href=\"http://twitter.com/$1\">@$1</a>", 
          $tweet);

    $outer .= "Twiter Updates by:".get_option('tweetID')."<li>". $tweet  . "</li>\n";


    if($i++ >= $max_tweets) break;
  }
   $outer .= "</ul>\n";
  return $outer;
  }
}

add_action('admin_menu', 'tweet_fetch1');

function append_the_content1($content) {
     $content .= "<div class='post'><p>".tweet(get_post_meta($post->ID, 'dbt_Username', true))."</p></div>";
      return $content;
      }
add_filter('the_content', 'append_the_content1');
È stato utile?

Soluzione

così tanti problemi qui ...

In primo luogo, io non sono sicuro di quello che questa linea sta facendo:

add_action('admin_menu', 'tweet_fetch1');

Se in realtà non hanno una funzione chiamata tweet_fetch1 che corre quando i carichi di amministrazione, è necessario rimuovere questo add_action. E se si dispone di una tale funzione, perché è il tuo add_action in questa posizione? Il primo passo per evitare i problemi è pulito, leggibile, codice commentato le funzioni gruppi e li aggancia logicamente.

In secondo luogo, in entrambe le funzioni, si sta cercando di fare riferimento a $ post-> ID dove nessun oggetto post è disponibile. Di solito è possibile renderlo disponibile per globalizzare esso.

global $post;

In terzo luogo, la funzione denominata "Tweet" non accetta argomenti, ma quando si chiama da dentro la funzione () append_the_content1, si sta cercando di passare il valore di meta per dbt_Username.

$content .= "<div class='post'><p>".tweet(get_post_meta($post->ID, 'dbt_Username', true))."</p></div>";

Questo non è corretto ... e inutile, come si afferra allora lo stesso valore di meta (di nuovo) da dentro la funzione Tweet () utilizzando get_post_meta. È necessario rimuovere l'argomento (la roba tra le parentesi) quando si chiama il funciton Tweet (). In questo modo:

$content .= "<div class='post'><p>".tweet()."</p></div>";

Infine - anche se questo è solo un suggerimento, e non è strettamente qualcosa di sbagliato con il codice - non so che cosa tutto ciò che preg sostituzione è per. Se stai cercando di link per il tweet originale, si può tirare l'URI destra, fuori dalla feed Twitter. Inoltre, è possibile creare collegamenti all'interno tweet cliccabili con make_clickable () funzione a portata di mano di WordPress'.

Il problema qui non è con get_post_meta - è con PHP. Nessuna mancanza di rispetto, ma sarebbe aiutarti tremendamente di rispolverare le nozioni di base in modo da poter meglio capire il codice che si sta scrivendo, e le risposte di persone stanno dando voi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top