Intereting Posts
Страница параметров не обновляет несколько записей в настройках api фильтровать сообщения мета-ключом с разбивкой на страницы Как я могу изменить этот код для перебора массива категорий? Как отключить или защитить от одноразовых учетных записей электронной почты? Добавьте «Описание» в таксономию «Быстрое редактирование» Пользовательский тип сообщения и проблема с permalink multisite htaccess 301 перенаправления Остановите мой цикл для регистрации данных дважды Как вы используете подготовку при запросе списка идентификаторов Как запустить ajax в WordPress Post? CSS не загружается на мобильные устройства get_page_by_title () не работает, если присутствуют специальные символы Крюк, когда изменяется шаблон страницы Woocommerce – Показать цену активного изменения цены Metabox, заполненный пользовательским типом сообщения – как вывести CPT на основе Select?

Как я могу извлечь URL-адрес ссылки из сообщения?

Я довольно новичок в WordPress, и у меня есть следующие сомнения.

У меня есть страница, которая берет некоторые данные из списка сообщений, относящихся к определенной категории, и показывает эту информацию во что-то вроде «приборной панели».

Итак, у меня есть этот код:

<?php /** * The template for displaying all Parallax Templates. * * @package accesspress_parallax */ ?> <div class="service-listing clearfix"> <?php $args = array( 'cat' => $category, 'posts_per_page' => -1 ); $count_service = 0; $query = new WP_Query($args); if($query->have_posts()): $i = 0; while ($query->have_posts()): $query->the_post(); $i = $i + 0.25; $count_service++; $service_class = ($count_service % 2 == 0) ? "even wow fadeInRight" : "odd wow fadeInLeft"; ?> <div class="clearfix service-list <?php echo $service_class; ?>" data-wow-delay="<?php echo $i; ?>s"> <div class="service-image"> <?php if(has_post_thumbnail()) : $image = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()),'thumbnail'); ?> <img src="<?php echo esc_url($image[0]); ?>" alt="<?php the_title(); ?>"> <?php else: ?> <img src="<?php echo get_template_directory_uri(); ?>/images/no-image.jpg" alt="<?php the_title(); ?>"> <?php endif; ?> </div> <div class="service-detail"> <h3><?php the_title(); ?></h3> <div class="service-content"><?php the_content(); ?></div> </div> </div> <?php if($count_service % 2 == 0): ?> <div class="clearfix"></div> <?php endif; ?> <?php endwhile; wp_reset_postdata(); endif; ?> </div><!-- #primary --> 

Как вы можете видеть в предыдущем коде, скрипт получает список сообщений, выполняющий запрос, и interate в этом списке, отображая это сообщение определенным образом.

Таким образом, каждый контент для сообщений отображается на моей странице по этим строкам:

 <div class="service-detail"> <h3><?php the_title(); ?></h3> <div class="service-content"><?php the_content(); ?></div> </div> 

Это отображается в браузере как-то вроде этого:

 <div class="service-detail"> <h3>TEST</h3> <div class="service-content"> <p><a href="https://it.wikipedia.org/wiki/Pagina_principale">test</a></p> </div> </div> 

Таким образом, поскольку вы можете казаться в div, имеющем class = "service-content" , содержится значение содержимого, полученное функцией the_content () .

Теперь мне нужно выполнить следующую операцию.

Если значение, полученное функцией the_content (), является ссылкой HTML (значение тега haref ), оно помещается в переменную (с именем url , в противном случае эта переменная устанавливается в null.

Могу ли я сделать это простым способом? Существуют некоторые функции WordPress, которые извлекают список ссылок (в моем конкретном случае только один), которые входят в сообщение?

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

Tnx

Существуют некоторые функции WordPress, которые извлекают список ссылок (в моем конкретном случае только один), которые входят в сообщение?

Проверьте основную wp_extract_urls() :

 $urls = wp_extract_urls( $content ); 

который будет извлекать URL-адреса из любого данного контента.

пример

 $content = 'Two test sites: <a href="http://foo.tld">Foo.tld</a> and https://bar.tld'; $urls = wp_extract_urls( $content ); print_r( $urls ); 

с выходом:

 Array ( [0] => http://foo.tld [1] => https://bar.tld )