2014-02-09 3 views
0

У меня есть основная тема Wordpress с одной страницей, то есть index.php. У меня есть постоянные ссылки в следующей структуре: www.website.com/wp/article-name.Wordpress url_to_postid не работает с постоянными константами по умолчанию

Я уточню, permalinks работать и отображать правильный контент, только сценарий ниже просто не возвращает их идентификатор.

В приведенном ниже коде должно быть указано, что адрес postID также ссылается на текущий URL-адрес и текущий URL-адрес. Он отлично работает для постоянных ссылок по умолчанию, то есть www.website.com/wp/?p=1, но не для моих пользовательских постоянных ссылок, возвращает 0 (сбой). Любые идеи почему?

<?php 
    $url = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; 
    $postid = url_to_postid($url); 
    echo $postid; 
    echo $url; 
?> 

Мой файл .htaccess в настоящее время выглядит следующим образом:

# BEGIN WordPress 
    <IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /wp/ 
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /wp/index.php [L] 
    </IfModule> 
# END WordPress 

Помощь очень ценится.

+0

Вы проверили файл '.htaccess'? –

+0

Что я должен искать в файле .htaccess? Теперь я опубликую содержимое. – Tomn8r

+0

Я редактирую файлы локально и загружаю на живой сервер (удаленный общий хостинг с cpanel). – Tomn8r

ответ

3

Вместо использования url_to_postid($url), попробуйте:

$page = get_page_by_path($slug_of_url); 
echo $page->ID ; 

;) Это всегда работает для меня.

+0

Это работает только для страниц по умолчанию. Проверьте документацию, как ее использовать для другого типа сообщений: https://codex.wordpress.org/Function_Reference/get_page_by_path – jetlej

Смежные вопросы