1. 程式人生 > >WordPress技巧:在過濾器中獲得文章ID

WordPress技巧:在過濾器中獲得文章ID

今天在寫主題的時候,需要利用add_filter(‘the_content’)過濾器在文章尾部生成評分系統。通常如果手動在single.php檔案裡做同樣的事,可能會簡單的多,只需要用the_ID()就能獲取文章ID號碼,但是在用了過濾器後,這個東西就不生效了。

比如這種:

get_post_meta($post->ID,'tf_topic_rate',true);

如果是寫在single.php裡,拿到的是meta裡的值,但如果是在過濾器裡,由於$post->ID是沒有意義的,所以最終拿到的值是null,那麼在過濾器中如何獲取文章的ID呢,這裡介紹兩個辦法,一個是用get_the_ID()替代$post->ID,例如上面程式碼改成:

get_post_meta(get_the_ID(),'tf_topic_rate',true);

或者新增global $post來解決:

$global $post;
get_post_meta($post->ID,'tf_topic_rate',true);

上述程式碼主要用來在文章尾部增加一個評分系統,網上的星號評分都基本來自wp-PostRatings這款外掛,或者從中取出程式碼修改後自用,tiandi感覺程式碼冗餘還是過多,所以只能一步步寫一個出來,效果其實還是差不多的,目的麼純為了google結構化資料而已。

rates wordpress

文章評分4次,平均分3.8