Вам необходимо понять концепцию некоторых тегов шаблонов , поскольку the_permalink подходит для этой категории. Они определены специально для использования в темах WordPress. Их можно обобщить как «код, который инструктирует WordPress« делать »или« получать »что-то».
Запись the_permalink просто повторяет постоянную ссылку в вашем шаблоне. Это не то, что вы получаете в php-функции и манипулируете ею. Это просто повторяет html информации, которую нужно показать.
Это полезно для дизайнеров, разрабатывающих файлы шаблонов в темах Wordpress: им не нужно разбираться в программировании или большом количестве ключевых слов php: им просто нужно знать, что написание «the_permalink» дает им желаемый вывод html .
То, что вы пытаетесь сделать, это получить вывод из тега шаблона, который уже выводит его значение. Вам нужно использовать другой тег шаблона, который ВОЗВРАЩАЕТ значение, которое вы хотите использовать, вместо того, чтобы ВЫБРАТЬ его.
В вашем примере вам нужна get_permalink . Поскольку the_permalink используется в Loop , вам необходимо предоставить идентификатор записи для вашей функции get_permalink.
Есть и другие примеры, которые соответствуют той же проблемной области: например, я не могу манипулировать тем, что возвращает wp_list_pages (потому что он автоматически выводит свой результат), поэтому мне нужно get_pages (который возвращает массив), чтобы манипулировать его результатом.
Прочитайте официальную документацию Wordpress на Кодексе. Это здорово.