我在 WordPress 网站上使用 Timber。我正在开发一个主题,我需要访问当前的用户 ID。
我以管理员身份连接,我知道我的用户 ID:12。
我试图get_current_user_id
直接在树枝文件中调用,但它返回 0。
尝试用这个东西从文件中调用相同的函数后同样的functions.php
事情:add_action('init', 'my_function')
。总是0...
我还尝试了其他功能wp_get_current_user
,例如。再次,这就像我没有连接。
我认为问题在于我使用的是 Timber,但我不确定,因为我没有在网络上看到任何与 Timber 相关的问题。
编辑 :
这是我的树枝模板文件template-projects.twig
:
{% extends "base.twig" %}
{% block content %}
<div class="projects container">
<div class="projects__filters" id="project-filters">
{{ fn('get_current_user_id') }}
</div>
</div>
...
{% endblock %}
我有一个project
可用的变量。我要做的是显示与用户相关的项目(它是项目中的自定义字段)。现在,我只是想在添加任何代码之前获取 ID 并显示它。
这是我的 php 模板文件,template-projects.php
:
<?php
/*
* Template Name: Projects
* Description: Projects
*/
$context = Timber::get_context();
$post = new TimberPost();
$context['post'] = $post;
$context['searchBar'] = true;
$args = array(
'posts_per_page' => -1,
'post_type' => 'project-v3'
);
$context['projects'] = Timber::get_posts($args);
Timber::render('template-projects.twig', $context);
我得到了帖子,项目,一切都很好,我也尝试从这里获取用户 ID,但它也不起作用。
编辑 2:
我找到了解决方案!
我正在使用gruntjs
with BrowserSync
,它创建域localhost:3000
而不是我在 Mamp 中选择的主机名。
看来,如果我使用 Mamp 主机名,则可以正确检索用户数据,但是如果我继续使用 BrowserSync url,就好像我没有连接并且 ID 每次都是 0。这有点奇怪,我不会自动重新加载我的标签,但至少我发现了问题:)