Support » Kokeneille käyttäjille » Shortcode näkyy ja toimii vain kirjautuneena WP:iin

  • Olen tehnyt lapsiteeman functions.php tiedostoon alla olevan shortcoden, joka näkyy jostain syystä vain kirjautuneena WordPressin hallintaan. Miten shortcodet saa näkymään myös julkisesti sivustolla?

    <?php

    // Yhteystiedot, uusin
    function wpb_postsbycategory() {
    // the query
    $the_query = new WP_Query( array( ’category_name’ => ’yhteystiedot’, ’posts_per_page’ => 1, ’orderby’ => ’post_date’, ’order’ => ’DESC’ ) );

    // The Loop
    if ( $the_query->have_posts() ) {
    $string .= ’<div class=”postsbycategory widget_recent_entries”>’;
    while ( $the_query->have_posts() ) {
    $the_query->the_post();

    $string .= ’<div>’.” .get_the_content() .'</div>’;
    $string = apply_filters(’the_content’, $string);
    $string = str_replace(’]]>’, ’]]>’, $string);
    }
    } else {
    // no posts found
    }
    $string .= ’</div>’;

    return $string;

    /* Restore original Post Data
    wp_reset_postdata();*/
    }
    // Add a shortcode
    add_shortcode(’yhteystiedot-koodi’, ’wpb_postsbycategory’);

    add_filter( ’widget_text’, ’shortcode_unautop’);
    add_filter( ’widget_text’, ’do_shortcode’);

Esillä 1 vastausta (kaikkiaan 1)
  • Noin yleisenä huomiona get_posts() on WP_Queryn käyttämistä turvallisempi idea, jos nimenomaan tarkoitus ei ole tehdä uutta looppia. Ei tarvitse huolehtia resetoinneista tai muista, eikä häiritse muita looppeja (nytkin tuo wp_reset_postdata() on returnin jälkeen, eli sitä ei koskaan ajeta).

    Mutta ei tuossa nyt suurempia ongelmia näytä olevan. Oletko debugannut tuota yhtään? Jos pistät heti ekaksi riviksi return "testi";, näkyykö teksti myös kirjautumattomille käyttäjille?

Esillä 1 vastausta (kaikkiaan 1)
  • The topic ‘Shortcode näkyy ja toimii vain kirjautuneena WP:iin’ is closed to new replies.