Получить постоянную ссылку и заголовок страницы вне цикла в wordpress

Как получить постоянную ссылку и заголовок страницы вне цикла в wordpress.

У меня есть функция вроде

function get_post_info(){
  $post;
  $permalink = get_permalink($post->ID);
  $title = get_the_title($post->ID);
  return $post_info('url' => $permalink, 'title' => $title);
}

когда эта функция вызывается в цикле, она возвращает заголовок сообщения и URL-адрес.

Когда он вызывается вне цикла. Он не возвращает заголовок и URL-адрес текущей страницы. При вызове на домашней странице он должен возвращать заголовок и URL-адрес домашней страницы.

Как стать таким? вместо этого эта функция возвращает заголовок и URL последних сообщений.


person Aakash Chakravarthy    schedule 13.06.2010    source источник


Ответы (2)


После исследования я сам нашел ответы

wp_title() вернет заголовок страницы и

$url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; чтобы вернуть URL страницы

person Aakash Chakravarthy    schedule 13.06.2010

Вы подвергаете себя возможной XSS атаке, печатая REQUEST_URI без экранирования.

Ваша функция в порядке, вам просто не хватает ключевого слова global. Измените $post; на global $post;, и вы плывете!

person TheDeadMedic    schedule 13.06.2010
comment
Есть ли проблема с суперглобальными переменными? это небезопасно? пожалуйста, объясните мне, потому что я разрабатываю плагин, и они используются в этом плагине - person Aakash Chakravarthy; 14.06.2010
comment
На самом деле это не то, что я могу описать в комментарии - погуглите «безопасность PHP», прочитайте о XSS и всегда очищайте и избегайте данных из источников, которыми может манипулировать конечный пользователь. - person TheDeadMedic; 14.06.2010