الخميس، 16 أكتوبر 2014

إستبعاد تصنيف معين من الصفحة الرئيسية ووردبريس

هناك حالات التي نريد فيها إستبعاد تصنيف معين من الصفحة الرئيسية, و إضهاره فقط في قسم معين لسبب معين. إذا كنت قد فكرت في إستبعاد تصنيف معين من الصفحة الرئيسية, يمكنك فعل ذلك بسهولة ذون اللجوء إلى إستعمال إضافة. هناك طريقتين للقيام بهذا العمل لكن قبل البدأ يجب تحديد رقم التصنيف الذي تريد إستبعاده, لهذا قم بالذهاب إلى “مقالات” و بعدها أدخل إلى “تصنيفات”, قم بتمرير الفأرة فوق إسم التصنيف لكي يظهر لك رقم التصنيف في أسفل الصفحة كما هو مبين في الصورة (في الصورة رقم التصنيف هو 7).إستبعاد تصنيف معين من الصفحة الرئيسية ووردبريس

إستبعاد تصنيف معين من الصفحة الرئيسية بتغيير في ملف index.php.

إفتح ملف index.php ثم إبحث عن هذين السطرين:
1<!--?php if (have_posts()) : ?-->
2<!--?php while (have_posts()) : the_post(); ?-->
و قم بإستبدالهما بهذين السطرين:
1<!--?php query_posts($query_string '&cat=-7'); ?-->
2 <!--?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?-->
يجب عليك تغيير الرقم 7 برقم التصنيف الذي تريد إستبعاده, ووضع رمز السالب قبل الرقم إجباري.
يمكنك إستبعاد أكثر من تصنيف و ذلك بوضع فاصلة بين الأرقام كما يلي:
1<!--?php query_posts($query_string '&cat=-7,-8,-9,-10'); ?-->
2 <!--?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?-->
يجب عليك تغيير الأرقام 7,8,9,10 بأرقام التصنيفات التي تريد إستبعادها, ووضع رمز السالب قبل الأرقام إجباري.

إستبعاد تصنيف معين من الصفحة الرئيسية بواسطة وظيفة.

بالنسبة لي هذه الطرقة هي الأفضل بالمقارنة مع الطريقة الأولى, لأن الطريقة الأولى تجبرك على القام بهذه التغييرات بعد كل تحديث للقالب, لكن هذه الطريقة تبقى فعالة رغم تحديث القالب أو حتى تغييره. فقط عليك وضع هذا الكود في ملف functions.php أو فيإضافتك المخصصة.
1function exclude_category_home( $query ) {
2if $query->is_home ) {
3$query->set( "cat""-7" );
4}
5return $query;
6}
7add_filter( "pre_get_posts""exclude_category_home" );
يجب عليك تغيير الرقم 7 برقم التصنيف الذي تريد إستبعاده, ووضع رمز السالب قبل الرقم إجباري.
كذلك يمكنك إستبعاد أكثر من تصنيف و ذلك بوضع فاصلة بين الأرقام كما يلي:
1function exclude_category_home( $query ) {
2if $query->is_home ) {
3$query->set( "cat""-7,-8,-9,-10" );
4}
5return $query;
6}
7add_filter( "pre_get_posts""exclude_category_home" );
يجب عليك تغيير الأرقام 7,8,9,10 بأرقام التصنيفات التي تريد إستبعادها, ووضع رمز السالب قبل الأرقام إجباري.
إذا كنت تريد إستبعاد تصنيف من الأرشيف فقط عليك إستبدال السطر الثاني بهذا السطر:
1if $query->is_archive ) {
إذا كنت تريد إستبعاد تصنيف من الصفحة الرئيسية و الأرشيف معاً فقط عليك إستبدال السطر الثاني بهذا السطر:
1if $query->is_home || $query->is_archive) {
إذا أعجبك الموضوع قم بمشاركته الآن!!

ليست هناك تعليقات:

إرسال تعليق