Intereting Posts
Существует ли максимальная длина слитка? Как настроить сетевой плагин по сети только с моими настройками? qTranslate с моей собственной темой и настройками Как использовать esc_attr__ с функцией пользовательского перевода? Поиск продуктов WooCommerce в WordPress Могу ли я изменить текст «Главная» в меню? Как я могу объединить эту функцию (ы), которая вставляет термины в пользовательскую таксономию с помощью этого другого, который добавляет пользовательский фильтр таксономии? Есть ли способы иметь рабочий процесс редактирования в WordPress? Как связать встроенный AJAX с add_action? Где добавить URL-адрес другого сайта для нашего сообщения в WordPress Плагин WordPress, создающий базу данных в localhost, но не на реальном хосте Первое значение настраиваемого поля (из нескольких) отображается дважды после запроса is_plugin_active () возвращает false в активный плагин Как проверить совместимость версии PHP на веб-сайте WordPress? Использование в 'category_name' в '$ query-> set ();'?

Почему `url_to_postid` возвращает 0 при тестировании страницы` page_for_posts`?

Если я установил параметр «Настройки чтения» > « Сообщения» (другими словами, параметр page_for_posts ) на статическую страницу, а затем url_to_postid() передать свой URL-адрес через url_to_postid() он вернет 0 – почему это так?

Я понимаю, что это технически не статичная / пост-страница, а страница сообщений, однако эта страница все еще имеет идентификатор, и мне все равно нужно это понять. Достаточно смешно, мне нужно получить идентификатор, чтобы проверить, соответствует ли это значение как page_for_posts . Я не могу использовать 0 возвращаемый функцией url_to_postid, потому что 0 может быть возвращен по нескольким причинам.

Кто-нибудь знает, как я могу проверить текущий URL-адрес, чтобы получить его ID, когда он установлен на страницу page_for_posts ?

Solutions Collecting From Web of "Почему `url_to_postid` возвращает 0 при тестировании страницы` page_for_posts`?"

Причина, по которой вы получаете 0 назад, – это результат теста в конце функции:

 if ( ! empty( $query->posts ) && $query->is_singular ) return $query->post->ID; else return 0; 

Страница сообщений не проходит тест is_singular поэтому возвращается 0.

Если у вас есть URL-адрес и вы хотите узнать, является ли это страница сообщений, вы можете сопоставить его с постоянной get_permalink возвращаемой с get_permalink когда передана опция page_for_posts :

 $page_for_posts_url = get_permalink( get_option( 'page_for_posts' ) ); if( $current_url == $page_for_posts_url ) echo 'this is the page for posts!'; 

Взгляните на эту функцию, это может быть полезно. Функция WP get_page_by_path ()

Страница сообщений не является страницей . Например, установите страницу со страничным шаблоном в качестве страницы сообщений, и вы не получите шаблон страницы. Вместо этого вы, скорее всего, увидите archive.php или index.php , потому что основной цикл / запрос не загружает страницу, это загрузка первичного пост-архива.

Следовательно, этот код:

 if ( ! empty( $query->posts ) && $query->is_singular ) return $query->post->ID; else return 0; 

Когда на странице сообщений is_singular является ложным, потому что это страница архива, а не одна страница сообщения

Таким образом, на этом URL нет сообщения, и, следовательно, 0 является подходящим, потому что это код ошибки, указывающий отсутствие сообщений.