• 0

كيف أحل مشكل term_exists الذي يعيد قيمة null على ووردبريس؟

تعيد لي الدالة term_exists القيمة null رغم وجود term:

$name = "my name"
$taxonomy_name = "geographictermsmaroc"
$args = array("slug" => "everything", "parent" => 0)

var_dump(term_exists($name, $taxonomy_name, $args)); // Returns NULL (not 0)

if ( !term_exists($name, $taxonomy_name, $args) ) {
    $foo = wp_insert_term($name, $taxonomy_name, $args);
    var_dump($foo); // Returns the array below
}

object(WP_Error)#4193 (2) {
  ["errors"]=>
  array(1) {
    ["term_exists"]=>
    array(1) {כל האזורים
      [0]=>
      string(77) "Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression"
    }
  }
  ["error_data"]=>
  array(1) {
    ["term_exists"]=>
    string(3) "699"
  }
}

وقيمة term موجودة على قاعدة البيانات كما هو موضح:

mysql> select * from wp_term_taxonomy where taxonomy='geographictermsisrael';
+------------------+---------+-----------------------+-------------+--------+-------+
| term_taxonomy_id | term_id | taxonomy              | description | parent | count |
+------------------+---------+-----------------------+-------------+--------+-------+
|              738 |     699 | geographictermsmaroc  |             |      0 |     0 |
+------------------+---------+-----------------------+-------------+--------+-------+
1 row in set (0.00 sec)

mysql> select * from wp_terms where term_id=699;
+---------+---------------------+------------+------------+
| term_id | name                | slug       | term_group |
+---------+---------------------+------------+------------+
|     699 | my name          | everything |          0 |
+---------+---------------------+------------+------------+
1 row in set (0.00 sec)

mysql> select * from wp_term_relationships where term_taxonomy_id=738;
Empty set (0.00 sec)

ما هو المشكل؟ وكيف أحلّه؟

تمّ تعديل بواسطة Badraoui

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

من خلال ()term_exists يتضح أن القيمة العائدة منها هي عددية -integer- وليست مصفوفة -array-، وكدليل على ذلك، أُرفق في جوابي هذا التوثق الرسمي من موقع ووردبريس:

Parameters
$term
(integer|string) (required) The term to check
Default: None
$taxonomy
(string) (optional) The taxonomy name to use
Default: ''
$parent
(integer) (optional) $parent ID of parent term under which to confine the exists search
Default: 0

إذن كلّ ما عليك هو تمرير القيمة الصحيحة لكي يعمل السكريبت الخاص بك:

var_dump(term_exists($name, $taxonomy_name)); 

ملاحظة: 0 هي القيمة الافتراضية، لن تحتاج للتأكد ذلك.

تمّ تعديل بواسطة E.Nourddine

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن