طريقة إخفاء مقالات معينة من الظهور بالصفحة الرئيسية

8

احيانا يكون هناك مجموعة من المقالات لا نريدها أن تظهر بالصفحة الرئيسية. إما لأسباب تنظيمية او لكونها مقالات غير كاملة او تتبع اقسام داخلية مثل ( فيديو – صور – …الخ ) او تكون مقالات خاصة او قديمة او أي أسباب اخرى. سنقوم بشرح الطريقة ببساطة بدون الحاجة الي أي إضافات ( تصلح لمن لديهم خبرة متوسطة ولديهم فكرة عن تعديل الملفات )..

اولاً: قم بانشاء تصنيف جديد باي اسم وليكن اسمه مثلا XYZ. بعد ذلك قم بادراج المقالات التي نريد اخفائها تحت هذا التصنيف.

ثانياً: نحتاج الرقم المعرف ID لهذا التصنيف.  وذلك عن طريق فتح صفحة التصنيفات. ثم قم بوضع مؤشر الماوس عليه وستجد الرابط يظهر باسفل ثم نجد الرقم المعرف ID مثل هذه الصورة:

1111

فلنفرض مثلاً ان الرقم المعرف ID للتصنيف هو 22

لدينا الان طريقتين اختار منها ما تشاء ..

الطريقة الأولى :

عن طريق فتح ملف index.php في مجلد القالب . ثم إبحث عن الكود التالي:

if ( have_posts() )

غالبا يكون في الاسطر الأولى. ثم قبل هذ الكود مباشرة أضف السطر البرمجي التالي:

if ( is_home() ) {
	query_posts( 'cat=-X' );
}

مع استبدال حرف X بالرقم المعرف الخاص بالتصنيف الذي عرفناه في الخطوة السابقة وهو 22

اذا كان هناك تصنيفات اخري تريد ايضا اخفائها نقوم بوضعها مع علامة الفاصلة (،)
اذا فرضنا انهم مثلا : 11 و 22 و 33 قم باضافتها علي النحو التالي:

if ( is_home() ) {
	query_posts( 'cat=-11,-22,-33' );
}

 

الطريقة الثانية:

عن طريق ملف functions.php نقوم بادراج هذا الكود فيه:

function exclude_category( $query ) {
	if ( $query->is_main_query() && $query->is_home() ) {
		$query->set( 'cat', '-X' );
	}
	return $query;
}
add_filter('pre_get_posts', 'exclude_category');

واذا اردنا إخفاء عدة تصنيفات نقوم بفصلها بعلامة الفاصلة مثلما شرحنا بالخطوة السابقة.