我需要添加一個行動,當用戶顯示post_or_page_or_product(woocommerce產品)。 我試圖用WordPress的行動掛鉤帖子/頁面/產品
add_action('the_post', 'my_the_post_action');
它的工作原理... 太多!
我的意思是,任何時候引用帖子都會調用該函數(例如對於窗口小部件中的鏈接)。
我需要調用函數只有當頁面的post_or_page_or_product的將被顯示..
如何?
謝謝!
我需要添加一個行動,當用戶顯示post_or_page_or_product(woocommerce產品)。 我試圖用WordPress的行動掛鉤帖子/頁面/產品
add_action('the_post', 'my_the_post_action');
它的工作原理... 太多!
我的意思是,任何時候引用帖子都會調用該函數(例如對於窗口小部件中的鏈接)。
我需要調用函數只有當頁面的post_or_page_or_product的將被顯示..
如何?
謝謝!
要限制一組文章類型,你可以使用is_singular()
條件標記:
add_action('init', 'so20270528_init');
function so20270528_init()
{
if(! is_singular(array('post', 'page', 'product')))
return;
global $post;
if('somevalue' == get_post_meta($post->ID, 'somekey', true))
wp_enqueue_script('script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true);
}
使用2個條件語句,一個檢查當前的着陸頁,其他檢查如果循環 that_posts()是主循環。這可以簡單地使用內置的in_the_loop()
條件測試完成:
function my_the_post_action($post){
if(is_singular('product') && in_the_loop()) {
// do some action
}
}
add_action('the_post', 'my_the_post_action');
您可以跳過return $post
因爲這個動作傳遞$post
引用。
注意:在使用&& is_main_query()
不在這裏工作,因爲它會返回true
所有的時間。
就我而言,我需要修改博客存檔頁面上的小部件,它生成與博客頁面本身完全相同的最新帖子。問題是他們使用相同的模板文件並需要更改action 'the_post'
。
function my_the_post_action($post){
if(is_home() && !in_the_loop()) {
// do some action by examine the $post to find your widget posts
}
}
add_action('the_post', 'my_the_post_action');
也許我沒有解釋好.. – aleclofabbro
也許我沒有解釋好.. 我基本上要排隊一些JS和CSS視後的自定義字段,但我需要將它們添加只有當帖子實際上完全顯示時。 帶有「the_post」鉤子,它恰好爲每個帖子調用函數,這些帖子在「最近的帖子」窗口小部件和其他列表中呈現出來,排入所有相關的腳本和css – aleclofabbro
'init'鉤子應該沒問題,我用一個例子編輯了答案 – diggy