Intereting Posts
Какие файлы следует хранить после обновления WordPress? Проверка того, что данные уже выведены в базе данных wp – пользовательский плагин Копирование корневого многосайтового сайта Как отображать результаты из таблицы данных с зашифрованным идентификатором пользователя? Как сделать субдомен и muti-сайт, но wordpress не в корне? Как показать изображения категорий (из плагина) на обычной странице (page-example.php)? Получить все сообщения из категории в раскрывающемся списке в настраиваемом поле Корзина Страница – Woocommerce pagenavi с объединенным wp_query Двойной бар «|» в заголовке (по WP SEO Yoast?) Как добавить будущие сообщения в новую функцию «Внутреннее связывание» Как загрузить все плагины CSS после детской темы CSS? как вызвать WordPress API из другой существующей системы PHP Перемещено wp-контент и возникла проблема с папкой тем? Как дезинфицировать стоимость почтового метаполя?

Почему моя функция не загружается из моего файла functions.php?

Мы хотели бы очистить некоторые из наших URL-адресов WordPress и иметь некоторые перезаписи на месте в следующем формате:

Фактический URL: product-one / product-one-guide /

Фактический URL: product-two / product-two-guide /

Переписанный URL-адрес: product-one / guide /

Переписанный URL: product-two / guide /

Это позволяет использовать одно и то же имя подпапки в отдельных продуктах. (без дубликатов проблем с пулями)

Во всяком случае, у меня есть функция в functions.php, которая делает это:

// URL replaces function updateToPerfectURLs($content) { $new_content = $content; $new_content = str_replace("/product-one-", "/", $new_content); $new_content = str_replace("/product-two-", "/", $new_content); return $new_content; } 

Теперь я хочу сделать что-то вроде этого:

 <?php updateToPerfectURLs(the_permalink())?> 

Но по какой-то причине замены не происходят, и мои постоянные ссылки все еще появляются, как:

 domain.com/product-one/product-one-guides 

Может ли кто-нибудь подумать о причине?

Он не работает, потому что вы смешали возвращаемые значения и эхо-значения

 updateToPerfectURLs(the_permalink()); 

Здесь updateToPerfectURLs возвращает свое значение, но вы его не распечатали. Попробовать эхо / etc

Ваша вторая проблема – противоположность, the_permalink() не возвращает постоянную ссылку, это ее эхо. Поэтому, прежде чем вы даже включились в функцию, выдается перманентная ссылка. get_permalink() этого используйте get_permalink() .

Наконец, не передавайте вызов функции непосредственно другому, это затрудняет чтение и отладки

Даю вам:

 $permalink = get_permalink(); echo updateToPerfectURLs( $permalink ); 

Конечно, есть, вероятно, лучший способ сделать это, используя различные фильтры без имен продуктов hardcoding в вашей функции. Это будет новый вопрос, который вы должны задать! Я думаю, это было бы полезно многим людям. Возможно, переработанная конечная точка тоже будет работать