it-swarm.asia

إضافة أرشيف منشورات إلى قائمة التنقل في WordPress 3.0

Hay all ، ألعب مع WordPress 3.0 واثنين (2) من الميزات الجديدة ، أنواع النشر المخصصة و محرر القائمة .

لقد بدأت من خلال إنشاء نوع منشور جديد يسمى "products" ، كما خمنت ، منتجات هذه القائمة.

أنا أستخدم قالب bog القياسي وأقوم بإنشاء قائمة جديدة لتحل محل أعلى التنقل. بقدر ما أستطيع أن أرى أنه لا يمكنني إضافة سوى بعض "منتجات" إليها ، لا يمكنني إضافة "أرشيف" من المنتجات. ما أحاول القيام به هو إضافة رابط إلى القائمة للانتقال إلى صفحة تسرد جميع المنتجات.

أي فكرة عن كيفية القيام بذلك؟

10
dotty

dotty كما ترون من خلال تذكرة التتبع هذه: يجب أن تكون هناك صفحات فهرس لأنواع المنشورات المخصصة لذلك من الواضح أن الحاجة لم تكن بعد معالجة في وورد الأساسية.

يعطيك كلا من John P Bloch و @ Chris_O بدائل جيدة ؛ انا ذاهب لتعطيك 3rd.

صفحة "المنتجات"

قم أولاً بإنشاءصفحةلنوع النشر المخصص الخاص بك واتصل به "المنتجات". سيعطيه عنوان URL التالي:

http: //example.php/products/

A "قائمة المنتجات" الرمز القصير

قم بعد ذلك بإنشاء رمز قصير يمكنك تضمينه في صفحتك "المنتجات". في المثال الخاص بي ، قمت بتسميته [product-list]. في ما يلي لقطة شاشة لما يبدو استخدامه:

 A Product's Page that uses a Shortcode to display a list of Products in WordPress 
(المصدر: mikeschinkel.com )

لاحظ أن مثل هذا الرمز القصير سيكون مرشحًا رائعًا لإضافة الكثير من الوظائف الاختيارية وتمكينها من العمل مع العديد من أنواع المنشورات المختلفة ، ولكن من أجل الوضوح ، كل شيء مشدود إلى حد كبير. يمكنك بالطبع استخدامه كنقطة انطلاق للرمز المختصر الخاص بك:

<?php
add_shortcode('product-list', 'my_product_list');
function my_product_list($args) {
  $save_post = $GLOBALS['post'];  // Save state so you can restore later
  $post_type = 'product';
  $template_file = get_stylesheet_directory() . "/post-{$post_type}.php";
  if (!file_exists($template_file)) {
    return "<p>Missing template [$template_file].</p>";
  } else {
    global $post;
    $q = new WP_Query("showposts=10&post_type={$post_type}&orderby=title&order=ASC");
    $rows = array();
    $rows[] = '<div class="post-list ' . $post_type . '-post-list">';
    global $post_list_data;
    $post_list_data = array();
    $post_list_data['post_count'] = $post_count = count($q->posts);
    foreach ($q->posts as $post) {
      $q->the_post();
      ob_start();
      include($template_file);
      $rows[] = ob_get_clean();
    }
    $rows[] = '</div>';
    $GLOBALS['post'] = $save_post;
    return implode("\n",$rows);
  }
}

ملف قالب سمة post-product.php

بعد ذلك ، ستحتاج إلى إنشاء ملف قالب سمة يعرض منتجًا واحدًا فقط. تقوم الوظيفة التي تنفذ الرمز القصير بتسمية ملف القالب post-product.php وهذه نقطة انطلاق جيدة:

<?php
/**
 * post-product.php - File to display only one product within a list of products.
 */
?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
  <h2 class="entry-title"><?php the_title(); ?></h2>
  <div class="entry-content">
    <?php the_content(); ?>
  </div>
</div>

أضف خيار القائمة

آخر سترغب في إضافة خيار القائمة. هذا واضح جدًا كما يمكنك أن ترى من لقطة الشاشة هذه (يفترض ما يلي أنك لم تفعل شيئًا مع قوائم WordPress 3.0 من قبل وأنك تستخدم سمة تدعم قوائم WordPress 3.0 مثل Twenty Ten):

  1. حدد خيار القائمة في قائمة المسؤول.
  2. انقر فوق "+" لإضافة قائمة جديدة.
  3. اكتب اسم القائمة الخاص بك ، كل ما تريد.
  4. انقر فوق الزر {"إنشاء قائمة" (تظهر لقطة الشاشة "حفظ القائمة" ولكنها ستكون "إنشاء قائمة") عند الإضافة.)
  5. حدد قائمتك الجديدة كـ "التنقل الأساسي".
  6. حدد صفحة "المنتجات".
  7. انقر فوق "إضافة إلى القائمة"
  8. انقر فوق "حفظ القائمة"

 Adding a Products Page Menu Option to a WordPress Site 
(المصدر: mikeschinkel.com )

وأخيرا ، فإن الإخراج

وإليك ما قد تبدو عليه قائمة المنتجات الأساسية:

 A List of Products using a Custom Post Type in WordPress 
(المصدر: mikeschinkel.com )

12
MikeSchinkel

هذا غير معتمد أصلاً بواسطة WordPress. ومع ذلك ، يمكنك إضافة هذا إلى ملف jobs.php الخاص بك وسيعمل:

function give_me_a_list_of_products(){
  add_rewrite_rule( 'products/?$', 'index.php?post_type=products', 'top' );
}

add_action( 'init', 'give_me_a_list_of_products' );

سيعطيك هذا المثال example.com/products/ كقائمة من المنتجات. من هناك ، يمكنك فقط إضافة رابط مخصص إلى القائمة الخاصة بك.

ومع ذلك ، إذا كنت تريد الأرشفة الحقيقية (حسب الشهر أو السنة أو ما إلى ذلك) مع موجز ويب ، فأنت بحاجة إلى رمز أكثر تفصيلاً. إذا كانت "منتجاتك" هي نوع منشورات غير هرمي (يبدو أنها يجب أن تكون) ، يمكنك استخدام المكون الإضافي الخاص بي:

http://www.wordpress.org/extend/plugins/custom-post-permalinks/

يمنحك ذلك حقولًا إضافية لتخصيص روابطك الدائمة (مثل ما يمكنك مع منشورات المدونة) ، وسوف يمنحك القدرة على تخصيص الروابط الدائمة استنادًا إلى الفئة أو المؤلف أو الشهر أو السنة أو نوع المنشور ، إلخ.

4
John P Bloch

أعتقد أنه من الأفضل إنشاء عبر نوع المنشور نوع المنشور وحفظ المنشورات المؤرشفة في هذا الأرشيف. أضف أيضًا post_type الحالي إلى postmeta لهذا post_type الجديد للتراجع عن هذا. لقد قمت بكتابة مكون إضافي لهذا والحالي ، يمكنك رؤية ذلك ، بدون أوراق أنماط وصور وملفات لغة ، على Gist.github/978690 .

0
bueltge
بقدر ما أستطيع أن أرى أنه لا يمكنني سوى إضافة "منتجات" معينة إليها ، لا يمكنني إضافة "أرشيف" من المنتجات. ما أحاول القيام به هو إضافة رابط إلى القائمة للانتقال إلى صفحة تسرد جميع المنتجات. أي فكرة عن كيفية القيام بذلك؟

ستحتاج إلى تعيين تصنيف لنوع وظيفة "المنتجات" ثم إضافة مصطلح التصنيف إلى إحدى قوائمك المخصصة والتي ستنقل المستخدم بعد ذلك إلى صفحة أرشيف لجميع المنتجات بموجب التصنيف المستخدم.

مثال لدي نوع نشر مخصص يسمى "وظائف" مع تصنيف "المواقف" alt text

إذا كنت أرغب في الحصول على جميع الوظائف باستخدام مصطلح التصنيف "الفتحات الحالية" ، فسوف أقوم باختياره وإضافته إلى القائمة. alt text

إذا كنت بحاجة إلى تضمين جميع أنواع منشورات "المنتجات" في صفحة الأرشيف ، فيمكنك تعيين تصنيف أصل لجميع هذه العناصر بحيث يمكن إدراجها جميعًا في صفحة الأرشيف.

0
Chris_O