Как оказалось, если у поста есть код (это поле POST_NAME в таблице WP_POST), обычно сначала туда по умолчанию переносится заголовок поста, это верно не только для постов, но и для всех других объектов, которые хранятся в этой таблице (там правда есть еще черновики, но они нас не интересуют). Мы не нашли функции в WordPress, которая бы возвращала ID по POST_NAME, это можно сделать массой способов, но все они требуют предварительной подготовки и написания нескольких строк кода, аналога функции GET_CATEGORY_BY_SLUG для категорий мы не нашли. Ниже приведена функция, которая это делает:
function get_post_id_by_slug($slug) {
global $wpdb;
return $wpdb–>get_var('SELECT po.ID FROM '.DB_NAME.'.wp_posts po WHERE po.post_name = "'.$slug.'" LIMIT 1');
}
global $wpdb;
return $wpdb–>get_var('SELECT po.ID FROM '.DB_NAME.'.wp_posts po WHERE po.post_name = "'.$slug.'" LIMIT 1');
}
Вот пример ее вызова:
echo '
<a href="?p='.get_post_id_by_slug('_result_help').'" id="banner–link">
<div id="banner–title">Совет :</div>
<h2>
Результаты поиска можно не только посмотреть в виде таблице на экране,
но и вывести в отдельное окно, а также сохранить в формате MS Word или MS Excel.
Чтобы узнать как это работает, нажмите пожалуйста сюда…
</h2>
</a>
';
<a href="?p='.get_post_id_by_slug('_result_help').'" id="banner–link">
<div id="banner–title">Совет :</div>
<h2>
Результаты поиска можно не только посмотреть в виде таблице на экране,
но и вывести в отдельное окно, а также сохранить в формате MS Word или MS Excel.
Чтобы узнать как это работает, нажмите пожалуйста сюда…
</h2>
</a>
';