2017-01-20 30 views
1

Я пытаюсь отобразить некоторые данные с помощью своего короткого кода WP, но он показывает все не в порядке. После небольшого поиска документы говорят, что вам нужно использовать функцию возврата в функции, но она все еще не работает.Wordpress Shortcode отображает данные не по порядку, даже используя возврат

Вот код

function dwwp_jobs_from_california($atts){ 

    $atts = shortcode_atts(array(
    'title' => 'All jobs in California:', 
    ), 
    $atts 
); 

    $query = new WP_Query(array('post_type' => 'job')); 
    $jobs = "<h1>" . $atts['title'] . '</h1><br>'; 
    if($query->have_posts()): 
    while ($query->have_posts()) : 
     $query->the_post(); 
     $jobs .= '<h3>' . the_title() . '</h3><br>'; 
    endwhile; 
    endif; 

    $jobs .= "End of the loop!"; 
    wp_reset_query(); 
    return $jobs; 
    } 

add_shortcode('jobs_california', 'dwwp_jobs_from_california'); 

В моей Wordpress страницы:

"Content of the page" 

[jobs_california] 

Что он делает на странице:

[jobs_california] 
"Content of the page" 

Я также должен признать, что я Не очень привык к работа с PHP, поэтому извините, если качество моего кода не очень приятное.

Может ли кто-нибудь сказать мне, что я делаю неправильно? Заранее спасибо!

+0

Привет! Итак, когда вы говорите «не в порядке», что вы имеете в виду? В каком порядке они и в каком порядке вы ожидаете? – MacPrawn

+0

Извините, моя проблема - «общая проблема» с короткими кодами, где Shortcode отображается перед содержимым страницы. Я отредактирую вопрос :) –

+0

Но у людей часто возникает эта проблема, когда они используют эхо вместо возврата к функции, но здесь дело не в этом –

ответ

2

Я думаю, что единственная проблема, с которой вы сталкиваетесь, заключается в том, что вы используете the_title(), который будет echo Заголовок сообщения ... Но вместо этого вы хотите построить html-строку, которая будет возвращена вашей короткой функцией кода. Попробуйте использовать:

the_title('', '', false) 

или, гораздо лучше:

get_the_title() 

Надеется, что это помогает!

+0

Большое спасибо. Это именно то, что происходило! Исправлено с get_the_title() –