Wordpress Snippet - Слово синонимично заменяется в заголовке при изменении статуса от черновика к публикации - PullRequest
1 голос
/ 30 января 2020

Я пытаюсь создать фрагмент WordPress, который запускается при изменении состояния сообщения с «черновика» на «publi sh». Когда сообщение изменило статус, мой фрагмент нашел слова в заголовке и заменил их синонимами. Я нашел действие WordPress «draft_to_publi sh». Но я не знаю, как получить WordPress заголовок в строку и как сохранить сообщение с новым заголовком и слагом.

Вот идея

[https://pastebin.com/CBYAZRfr]

Есть идеи? (

Ответы [ 3 ]

0 голосов
/ 30 января 2020

Можете ли вы проверить с помощью кода внутри этого крючка

// define the draft_to_publish callback 
function action_draft_to_publish( $array ) { 
    // make action magic happen here... 
}; 

// add the action 
add_action( 'draft_to_publish', 'action_draft_to_publish', 10, 1 ); 
0 голосов
/ 30 января 2020

Вы можете использовать этот фрагмент кода:

function draft_to_publish( $post ) {
    $title = $post['post_title'];
    $lowTitle = mb_convert_case($title, MB_CASE_LOWER, "UTF-8");

    // Synonymous for replace
    $synonymous = array(
        'beautiful' => 'perect',
        'vehicle' => 'car',
    );

    // Loop with word check and replace
    foreach ($synonymous as $key => $value) {

        if(is_string($key)) {
            $stringKey = $key;

            // Replace in title
            if (strpos($lowTitle, $stringKey) !== false) {
                $lowTitle = str_replace($stringKey, $value, $lowTitle);
            }
        }
    }

    // Update post
    $my_post = array(
        'ID'           => $post['ID'],
        'post_title'   => $lowTitle, // new title
    );

   // Update the post into the database
   wp_update_post( $my_post );
}
add_action( 'draft_to_publish', 'draft_to_publish' );
0 голосов
/ 30 января 2020

Как это вы можете сделать это

function action_post_draft_to_publish($post){
if( $post->post_type == 'post' ) : //Check Post Type, You may update it accordingly for your need
    $title = $post->post_title; 
    // Convert title to lowercase
    $lowTitle = mb_convert_case($title, MB_CASE_LOWER, "UTF-8");

    // Synonymous for replace
    $synonymous = array(
        'beautiful' => 'perect',
        'vehicle' => 'car',
    );

    // Loop with word check and replace
    foreach($synonymous as $key => $value) {
        if( is_string($key) ) {
            $stringKey = $key;          
            // Replace in title
            if (strpos($lowTitle, $stringKey) !== false) {  
                $lowTitle = str_replace($stringKey, $value, $lowTitle);
            }
        }
    }
    wp_update_post( array(
        'ID' => $post->ID, 
        'post_title' => $lowTitle //Use Your Updated Title Which You Want to Use
    ) );
endif; //Endif
}
add_action('draft_to_publish', 'action_post_draft_to_publish', 20);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...