$ Post sadece belirli zamanlarda yürütme kancaları için kullanılabilir gibi görünüyor. $ Post-> ID kullanarak veritabanından bazı verileri çekmek için gereken bir "init" kanca var.
Şimdiye kadar benim tek geçici ihtiyacım bilgi almak için $ post kullanan the_content başka bir filtre eklemek oldu. Ne yazık ki, dönüş değerini ekrana yansıtır ve gerçekte filtreyi orijinal olarak adlandırılan işleve geri döndürmez.
İşte ihtiyacım olan verileri ayıklayan, ancak yankılar ve değeri döndüremeyen kod:
add_filter('the_content', 'get_keyword');
function get_keyword()
{
global $post;
$keyword = get_post_meta( $post->ID, '_wpg_def_keyword', true );
return $keyword;
}
Herkes ihtiyacım olanı almak ve herhangi bir eklenti daha sonra kullanmak için arama işlevine geri geçmek hakkında herhangi bir öneriniz var mı?
EDIT: Muhtemelen bu daha açık hale getirmek için, DB geçerli posta hakkında bilgi almak gerekir init çalışan bir filtre var. Bunu yapmak için $ post-> ID'ye erişim gerektirir. Ama bu init içinde mümkün değil, bu yüzden ihtiyacım olan sonucu nasıl alabilirim?
Teşekkürler,
Jonathan
ÇÖZÜLDÜ:
Cevabın sadece url_to_postid'i şu şekilde kullanmak olduğu ortaya çıktı:
$keyword = get_post_meta(
url_to_postid( "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] ),
'_wpg_def_keyword',
true
);
Başlangıçta bile mükemmel çalışır.
init
için çok erkenglobal $post;
. belki ne yapmaya çalıştığınızı açıklarsanız daha iyi yardımcı olabilirsiniz.