Cómo mostrar texto en una página en Wordpress dentro de un complemento

I am developing a plugin for a website.(Which is my first plugin for Wordpress)

The basic functionality is querying the database and in specific pages show the data from the database with a specific style instead of the content from the pages.

So far I managed to show some text in every specific page.

This is my code after some basic configurations:

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";
}

I've read this post, but I couldn't solve my problem. WordPress replace content of a page (plugin)

I already read the Wordpress documentation but I havent find anything there.

I found myself a solution, using shortcodes.

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";
}

See that instead of add_action I changed to add_shortcode

Then on everypage I will use to show info from the database I add

[sector_page_display]

in the page, so it call my method. You can add variables in there if you want.

preguntado el 04 de marzo de 14 a las 14:03

1 Respuestas

You'll want to run that code before WordPress has fully loaded.

Prueba esta

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";
}

I changed the add_action to now run the code when WordPress is being initialized.

respondido 04 mar '14, 14:03

This solution hasn't worked. The text dissapeared instead of being at the top of the page. I am looking to move the text to the content area in the page. - bucur89

i.imgur.com/klEFgSv.png Here you can see an image with the explanation. Whit the code I used it shows the Technology text at the top of the page outside the template. I need it to be where it normally shows the content from the page. So it needs to replace the content of the page. - bucur89

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.