我遇到需要在执行自定义分类法的单个页面时设置cookie的情况。
由于WordPress不允许从模板文件设置cookie,我需要在setcookie
操作中使用init
。
参考:https://wordpress.stackexchange.com/questions/67074/issues-with-set-cookie
所以我的功能如下,
function set_location_cookie() {
// Taxonomy : `store_location`
if( is_tax( 'store_location' )) {
die('Yeah. It Worked !!');
$school = "Some Value";
setcookie('default_school', $school, time()+3600);
}
}
add_action( 'init', 'set_location_cookie');
我已阅读此文档https://codex.wordpress.org/Function_Reference/is_tax以及来自StackOverflow的帖子,Conditional Tags for Custom Taxonomy in Custom Post Type
在每种情况下,他们都将目标定位为分类法或条件数据的存档页面,如下所示,
is_tax( 'store_location', array('ny', 'tx', 'ga') );
有没有办法轻松检测分类单页面,而不是将所有分类法都放在数组中。
答案 0 :(得分:0)
要检查帖子在某些分类中是否包含某些字词,您可以使用is_object_in_term($post_id, $taxonomy)
例如
function set_location_cookie() {
$post_id = get_the_ID();
// Taxonomy : `store_location`
if( is_object_in_term($post_id, 'store_location') ) {
die('Yeah. It Worked !!');
$school = "Some Value";
setcookie('default_school', $school, time()+3600);
}
}
add_action( 'wp', 'set_location_cookie');