如何动态获取存储Cookie的ID

时间:2019-05-24 作者:Ankush

enter image description here

现在,由于array\\u push(),我在输出“1778a1778”中静态获取id,但我必须动态发送id并获得相同的输出。

2 个回复
SO网友:Jacob Peattie

如果希望当前帖子的ID位于循环之外,可以使用get_queried_object_id(). 一定要检查一下is_singular() 首先,或者您可能最终会存储帖子以外的内容的ID。如果与post ID重叠,这可能会导致问题。我会将修改后的代码与这些更改共享,但出于某种原因,您发布了一个屏幕截图,而不是代码,我不会手写出来。

SO网友:Ankush
add_action( \'wp\', \'Store_cookies_of_user\' );
function Store_cookies_of_user() {  
$ids = isset( $_COOKIE[\'bsf_docs_cookies\'] ) ? explode(\'a\', $_COOKIE[\'bsf_docs_cookies\']) : array();
if( ! in_array(get_the_ID(), $ids) ) {

        // Add to array.
        $ids[] = get_the_ID();

        // Impload with `a` stirng!
        $ids = implode(\'a\', $ids);

        // Increase currend doc view count with 1.
        $count = (int) get_post_meta( get_the_ID(), \'views\', true );
        update_post_meta( get_the_ID(), \'views\', ($count+1) );

        // Set updated ids list.
        setcookie(
           \'bsf_docs_cookies\',
            $ids,
            time() + 86400,
            COOKIEPATH,
            COOKIE_DOMAIN,
            false,
            true,
        );
    }
}

相关推荐

Cookies in template

我需要根据cookies只显示一次页面的某些部分。主要问题是我只能在插件中设置cookie,挂起init操作。我已经读了20页的谷歌,这个网站,问了2个论坛,但我仍然有这个问题。任何帮助都将不胜感激!