我正在开发一个网站插件。(这是我的第一个Wordpress插件)
基本功能是查询数据库,在特定页面中显示数据库中的数据,使用特定样式而不是页面中的内容。
到目前为止,我设法在每个特定页面中显示一些文字。
这是我的一些基本配置后的代码:
global $wpdb;
global $wp_query;
add_action( 'wp', 'check_which_page' );
function check_which_page()
{
$page_type=get_post_type();
$page_id=get_the_ID();
//echo $page_id;
switch($page_id)
{
case 50:technologyPage();break;
case 82:medicalPage();break;
}
}
function technologyPage()
{
return print "Technology";
}
function salesPage()
{
return print "Sales";
}
function medicalPage()
{
return print "Medical";
}
我读过这篇文章,但我无法解决我的问题。 WordPress replace content of a page (plugin)
我已经阅读过Wordpress文档,但我找不到任何内容。
我发现自己是一个使用短代码的解决方案。
global $wpdb;
global $wp_query;
add_shortcode( 'sector_page_display', 'check_which_page' );
function check_which_page()
{
$page_type=get_post_type();
$page_id=get_the_ID();
//echo $page_id;
switch($page_id)
{
case 50:technologyPage();break;
case 82:medicalPage();break;
}
}
function technologyPage()
{
return print "Technology";
}
function medicalPage()
{
return print "Medical";
}
看到我改为add_shortcode
而不是add_action然后在每个页面上,我将用来显示我添加的数据库中的信息
[sector_page_display]
在页面中,所以它调用我的方法。如果需要,可以在那里添加变量。
答案 0 :(得分:0)
您需要在WordPress完全加载之前运行该代码。
试试这个
global $wpdb;
global $wp_query;
add_action( 'init', 'check_which_page' );
function check_which_page()
{
$page_type=get_post_type();
$page_id=get_the_ID();
//echo $page_id;
switch($page_id)
{
case 50:technologyPage();break;
case 82:medicalPage();break;
}
}
function technologyPage()
{
return print "Technology";
}
function salesPage()
{
return print "Sales";
}
function medicalPage()
{
return print "Medical";
}
我更改了add_action,以便在初始化WordPress时运行代码。