Упростите, если случай проверяет одно и то же значение несколько раз - PullRequest
0 голосов
/ 27 апреля 2018

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

Проблема в том, что код становится очень грязным, но выглядит примерно так

$arg1 = get_term_by('name', $term1, $taxonomy1);  //Checks so term1 exists
$arg2 = get_term_by('name', $term2, $taxonomy2);  //Checks so term2 exists

if ($arg1 == false && $arg2 == false){
    //creates term1
    //Creates term2
    //Passes on to create post
} elseif ($arg1 == false) {
    //Creates term1
    //Passes on to create post
} elseif ($arg2 == false) {
    //Creates term2
    //Passes on to create post
}

Самая большая проблема заключается в том, что два термина назначены двум разным таксономиям, поэтому я не могу вызвать другую функцию для создания терминов без прохождения таксономий и создания индекса со значениями для таксономий

Любая идея, как это упростить, если утверждение

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Вам не нужно заранее проверять, существует ли этот термин. Wordpress делает это для вас, когда вы пытаетесь создать новый. Вы можете сделать что-то подобное:

$term1 = wp_insert_term(....) //create your term. If exists WP returns an error object
$term2 = wp_insert_term(....)

if ( !is_wp_error($term1) || !is_wp_error($term2) ) {
    // create your post
}
0 голосов
/ 27 апреля 2018

Не уверен, что вы можете сделать с ним огромное количество, но это уменьшает количество повторяющегося кода ...

if ($arg1 == false) {
    //Creates term1
} 
if ($arg2 == false) {
    //Creates term2
}
if ($arg1 == false || $arg2 == false){
    //Passes on to create post
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...