автоматически генерировать теги из контента в WordPress - PullRequest
0 голосов
/ 18 марта 2020

содержимое моего сайта WordPress содержит несколько слов в каждой строке, я хочу, чтобы код автоматически преобразовывал каждую строку содержимого в тег (каждую строку, а не каждое слово), скажем, мой контент выглядит следующим образом:

Beagle puppy
Costumes
Wales
Dogs

Мне нужны теги из каждой строки: щенок гончей, костюмы, вэльс, собаки

Я не хочу использовать плагины, потому что я использовал некоторые, но для соответствия содержанию нужен список ключевых слов. Я не хочу использовать какой-либо список ключевых слов, чтобы соответствовать содержанию. Можно ли конвертировать каждую строку содержимого в один тег?

1 Ответ

0 голосов
/ 18 марта 2020

Предполагая, что вы имели в виду то, что имели в виду, например, что исходная запись состоит только из строк, которые нужно преобразовать, строки не будут содержать дополнительных нечетных / неуместных символов, которые нужно обработать, и т. Д. Работа. Если вам необходимо преобразовать раздел сообщения или какой-либо другой элемент, определенный каким-либо другим способом, или прикрепить строки в качестве тегов к текущему сообщению и т. Д. c., То вам необходимо четко указать эти детали.

  1. Поместите шорткод [convert_post_lines_to_tags] в новый выходной пост.
  2. Сохранение черновика и предварительный просмотр (шорткод, очевидно, пока не будет работать)
  3. Добавление функций к функциям вашей темы. php
  4. Укажите «$ source_post_id», где указано ,
  5. Повторная загрузка выходного поста
    add_shortcode( 'convert_post_lines_to_tags', 'convert_post_lines_to_tags' ) ;

    function convert_post_lines_to_tags() {

        $source_post_id = '' ; //Provide ID Number of post with lines to be converted

        $i = 0 ;
        $newTags = 'New tags inserted: <br />' ;

        //TIL - PHP requires double quotes to replace escaped characters
        $post_content = str_replace( 
            array( "\r\n", "\r" ), ',', get_post( $source_post_id )->post_content 
        ) ; 

        $post_line_array = explode( ',', $post_content ) ;

        foreach ( $post_line_array as $line_tag ) { 

            $tag = wp_insert_term( $line_tag, 'post_tag' ) ;

            if ( ! is_wp_error( $tag ) ) {

                $i++ ; 
                $newTags .= $i . '. ' . get_term( $tag['term_id'] )->name . '<br />' ;
            } 

        } 

        return $newTags ;

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...