Need help with PHP functions

时间:2016-12-05 作者:benisimo

为noob帖子道歉。我刚刚接触wordpress,我想做自己的php函数——这里我只想在页面上显示登录用户的名字。下面是我添加到主题函数中的内容。php:

add_shortcode(\'show_name\', \'generate_content\');
function show_name() {
$current_user = wp_get_current_user();
$first_name = $current_user->user_firstname;
return $first_name;
}
然后我将其添加到我想要的页面的html编辑器中,但它不显示任何内容:

<span style="font-family: \'Josefin Sans\', sans-serif; font-size: 20px;">Hi <strong><?php echo do_shortcode("[show_name]"); ?></strong>,</span>
我想我的主要问题是,我是否正确地编写了函数和/或应该在哪里放置快捷码调用。我希望有人能帮助我完成一些更高级的功能(例如通过单击按钮更新数据库值)。

1 个回复
SO网友:DarrenK

add_shortcode(\'show_name\', \'generate_content\');
当WordPress找到[show_name] content中的shortcode标记,它运行与第二个参数匹配的函数,在本例中为generate_content. 尝试将show\\u name()函数重命名为相同的函数,如下所示:

add_shortcode(\'show_name\', \'my_show_name_func\');
function my_show_name_func() {
    $current_user = wp_get_current_user();
    $first_name = $current_user->user_firstname;
    return $first_name;
}
虽然我没有测试这个,但其他的一切看起来都会起作用。有关添加快捷码的更多信息,请参阅此处的WordPress文档:https://codex.wordpress.org/Function_Reference/add_shortcode

此外,由于您是在模板中的php块中使用它,因此可以通过直接调用它来简单地使用php函数。对于上面的示例,在模板中执行此操作也可以:

... Hi <strong><?php echo my_show_name_func(); ?></strong> ...
也会有同样的效果。

由于php函数可以这样访问,因此最好将函数“命名为空格”,这样它们(命名唯一)就不会与另一个在另一个主题或插件中使用相同名称的函数冲突。

快乐的编码!