Intereting Posts
Изменение языка WordPress по умолчанию Добавление тега закрытия короткого кода после цикла SQL-запрос для получения смежных сообщений из поискового запроса Фильтровать сообщения по категориям ajax покажет все сообщения Как получить размер файла вложения? показывать сообщения из определенной категории на странице, в тематической детской теме? Добавить правило перезаписи только для одной страницы Есть ли простой способ сохранения AJAX-ify сообщения? Имейте пользовательские параметры столбчатой ​​страницы типа таксономии, а не сообщения Использование WP_Query для запроса нескольких категорий с ограниченными сообщениями по категориям? Составление списка сообщений с выбранным описанием Скрытие цены продукта Избавьтесь от другого обновления в настоящее время WP e-commerce: как выбрать метод расчета стоимости доставки в соответствии с местом доставки Как добавить пользовательский тег шаблона в тему WordPress?

Добавить в permalink rss

в следующей части добавления! [CDATA] в тег заголовка, как вы можете видеть по ссылке ниже

WordPress Добавить [cdata] в тег title в rss-фиде

теперь я пытаюсь добавить! [CDATA] в тег ссылки, используя the_permalink_rss Это код, который у меня есть до сих пор:

 //Add cdata to job permalink rss add_filter( 'the_permalink_rss', 'add_cdata_to_permalink' ); function add_cdata_to_permalink ( $permalink) { $permalink = get_post_type_archive_link( get_query_var('job_listing') ); return '<![CDATA[' . $permalink . ']]>'; 

И это вывод <link>http://![CDATA[]]</link> когда это должно быть

<link><![CDATA[permalink]]></link>

Что мне здесь не хватает?

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

Например, если тип post – это job_listing , использование get_post_type_archive_link() должно быть:

 $permalink = get_post_type_archive_link( 'job_listing' ); 

Обратите внимание, что get_post_type_archive_link() возвращает false если тип сообщения зарегистрирован с помощью 'has_archive' => false или, что это ваш cse, если идентификатор типа сообщения недействителен.

Также the_permalink_rss что значение, возвращаемое фильтром the_permalink_rss экранируется с помощью esc_url() , как вы можете видеть в исходном коде функции the_permalink_rss() , поэтому, вероятно, вы не можете получить the_permalink_rss() результат, потому что, я подумайте, что эта функция пытается избежать действительного URL-адреса, но строка, начинающаяся с <!CDATA , не является допустимым URL-адресом. Вы можете выполнить этот простой тест, чтобы понять, что я имею в виду:

 $test = '<![CDATA[ https://example.com/some-post ]]>'; // Outputs string(0) "" var_dump( esc_url( $test ) ); $test = 'https://example.com/some-post'; string(29) "https://example.com/some-post" var_dump( esc_url( $test ) );