Почему url_to_postid () не работает из плагина?

Я использую два плагина, один из которых обеспечивает сокращение ссылок, а другой получает данные JSON из запроса REST.

Плагин Link Shortening отлично работает, когда я создаю новые сообщения и посещаю ссылки. Но, похоже, это не работает в моем плагине данных JSON.

В моем плагине JSON я использую следующий код, чтобы попытаться получить идентификатор сообщения на основе сокращенной ссылки:

$shortenedURL = get_site_url() . "/" . $_REQUEST["fragment"] . "/"; $postID = url_to_postid($shortenedURL); $postID; // this always returns 0 

Я просмотрел спецификацию для url_to_postid() и похоже, что у нее может не быть информации до тех пор, пока не будет настроена тема установки. Но он также говорит, что он должен выбросить ошибку, а это не так.

Поскольку мой звонок находится в другом подключаемом модуле, возможно ли, что плагин Shorten Link еще не активирован?

Есть ли способ вручную активировать плагин Shorten Link, чтобы мой плагин мог получить правильный идентификатор сообщения из сокращенного URL-адреса?

Обновление :
Я проверил, был ли активен плагин Shorten Link, и он говорит, что это так. Вот мой тест:

  /** * Detect plugin. For use on Front End only. */ include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); // check for plugin using plugin name if ( is_plugin_active( 'shorten-url/shorten-url.php' ) ) { //plugin is activated $pluginActive = "true"; } return $pluginActive; // returns "true" 

Обновление 2:

Увидев, что плагин был активирован, я увидел функцию в классе плагина, которая выглядела так, будто она расшифровала сокращенную ссылку в идентификатор сообщения и с помощью этого я смог заставить ее работать. Я могу удалить этот вопрос. Может быть полезно знать, почему url_to_postid () не работает, поэтому я немного оставлю это открытым.

Solutions Collecting From Web of "Почему url_to_postid () не работает из плагина?"