• اطلاعیه ها

    • Morteza

      باهم بسازیم: اطلس ووکامرس و وردپرس   14/07/96

      تاپیک ایجاد شده برای بحث در جهت ایجاد یک منبع، ویکی، صفحات توضیحی و یا بخش آموزشی جامع برای وردپرس و متعلقات مختلف آن است. لطفا جهت مشارکت در این بحث، ارائه پیشنهاد و یا انتقاد به تاپیک فوق مراجعه کنید. باهم بسازیم: اطلس ووکامرس و وردپرس
Nemesis

سفارشی کردن جستجو

14 پست در این موضوع قرار دارد

سلام دوستان

سوالی برای من پیش اومده

فکر کنید من صفحه ای دارم با نام "صفحه اول - 12345" که منحصر به فرد هست

وکاربر جستجو کنه "12345"

حالا چطور میتونم

1.جستجو رو محدود کنم به این که در فقط ( تایتل صفحه هام ) بگرده

2.و به جای نمایش نتایج صفحه در پاپ آپ یا هرچیزی خودش باز بشه

ممنون میشم اگه راهنماییم کنید

با تشکر

0

به اشتراک گذاری این پست


لینک به پست

اصولاً جستجو در هسته وردپرس تعریف میشه پس دو راه دارید - یکی تغییر در هسته (wp-includes/query.php ) و دیگری اضافه کردن تابع زیر به فایل functions.php


function __search_terms_only_in_post_title( $search, &$wp_query )
{
global $wpdb;
if ( empty( $search ) )
return $search;
$q = $wp_query->query_vars;
$n = ! empty( $q['exact'] ) ? '' : '%';
$search =
$searchand = '';
foreach ( (array) $q['search_terms'] as $term ) {
$term = esc_sql( like_escape( $term ) );
$search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
$searchand = ' AND ';
}
if ( ! empty( $search ) ) {
$search = " AND ({$search}) ";
if ( ! is_user_logged_in() )
$search .= " AND ($wpdb->posts.post_password = '') ";
}
return $search;
}
add_filter( 'posts_search', '__search_terms_only_in_post_title', 500, 2 );

ویرایش شده در توسط isk
2

به اشتراک گذاری این پست


لینک به پست

ممنونم از پاسختون

من کمی گیچ شدم امکان توضیح بیشتر هست براتون؟

ببینید بیام اصلان فراموش کنیم جستجو رو

فرض کنید من یک فیلد دارم که میخوام

وقتی نام صفحه رو وارد کرد داخل فیلد مستقیم وارد اون صفحه بشه

درمورد این هم میتونید راهنماییم کنید ؟

البته باز هم اینجا فکر کنم باید از موتور جستجو وردپرس استفاده کنم

0

به اشتراک گذاری این پست


لینک به پست

میخواین جستجو به جای اینکه بر روی عنوان مطلب و متن مطلب باشه ، فقط بر روی عنوان باشه؟ اگر بله پس همون چیزیه که در پست 2 آمده

اما این چیزی که جدید گفتید فرق داره - برای اینکار کافیه یه فرم بسازید با متد post بعد یوزر کلمه ایی رو وارد کنه - مثلاً: حسن

حالا اگر چندین مطلب وجود داشته باشه که عنوان اون ها دارای کلمه "حسن" باشه چی؟

مگر اینکه در عنوان مطلب کلمات انحصاری قرار بدید - مثلاً اعداد رشته ایی مثل 1111 الی 9999

در این صورت بعد از submit فرم میشه کوئری از دیتابیس گرفت با سلکت like بر روی فیلد post_title و نتیجه رو ریدایرکت کرد به روی:


http://sitename.ltd/che-rooze-khoobi-2457

2

به اشتراک گذاری این پست


لینک به پست

حق با شماست

بنده نام هر صفحه ای که میسازم منحصر به فرد هست

و مشکل سر نام ندارم امکانش هست تو ساخت کدی که بتونم

با وارد کردن نام او صفحه از دیتابیس کوئری وردپرس کوئری بگیرم و ریدایرکت کنم

کمک کنید

من برنامه نویس کلاینت هستم در php ضعیفم

باز هم متشکرم

0

به اشتراک گذاری این پست


لینک به پست

الان پشت فرمونم - رسیدم خونه حتماً - البته اگر تا اون موقع دوستان انجام دادند که چه بهتر

1

به اشتراک گذاری این پست


لینک به پست

تست کنید:


<?php
/*
Template Name: ridir
*/
get_header(); ?>

<div id="container">
<div id="content" role="main">
<h1 class="page-title"><?php the_title(); ?></h1>



<form method="post" name="frm">
<input value="" type="text" name="keyword" placeholder="کد صفحه را وارد کنید"/>
<button id="submit" class="submit" type="submit">انتخاب</button>
</form>

<?php $keyword = $_POST['keyword']; ?>
<?php new wpdb('DB_username','DB_password','DB_name','localhost'); ?>
<?php $result = mysql_query("SELECT * FROM wp_posts WHERE post_title like '%$keyword%' and post_status = 'publish' and post_type = 'post' ORDER BY post_title ASC"); ?>
<div>

<?php if ( $keyword != null ) { ?>


<?php while($row = mysql_fetch_array($result)) { ?>

<?php header("Location: $row[guid]"); ?>
<?php } ?>
<?php } else { ?><?php echo 'کد را وارد نمایید' ?><?php } ?>
</div>
<?php wp_reset_query(); ?>

</div><!-- #content -->
</div><!-- #container -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

البته حتماً می دونید که استایل ها به عهده شماست

در ضمن من از فیلتر like در یک جا استفاده کردم که شما شاید نیاز داشته باشید به = تبدیلش کنید

همچنین مقادیر DB_username و DB_password و DB_name رو هم باید تغییر بدید

من تست کردم و جواب داد

ویرایش شده در توسط isk
2

به اشتراک گذاری این پست


لینک به پست

با تشکر فراوان از شما دوسته گلم

من اینو امتحان کردن روی لوکال هاستم

ولی پاسخ نگرفتم

البته من یک برگه درست کردم و در حالن متن کد هارو جایگزین کردم فرم ساخته شد

بعد برگه ای درست کردم با نام 1234 و تست کردم

مسخصات دیتابیسم هم وارد کردم

فکر میکنید مشکل من از کجاست ؟

0

به اشتراک گذاری این پست


لینک به پست

نه برگه ایی که میسازید هیچی نباید توش بنویسید. به این صورت عمل کنید:

1- Notepad++ رو باز کنید - کدهای بالا رو درونش کپی کنید و مشخصات دیتابیس رو درونش تغییر بدید و با نام مثلاً hasan.php درون پوشه ی قالبتون ذخیرش کنید.

2 - در پنل وردپرس وارد افزودن برگه جدید بشید و نام برگه جدید رو هر چه می خواهید قرار بدید. مثلاً "ورود به صفحات" . حالا قالب برگه رو به جای قالب پیشفرض ، قالب ridir انتخاب کنید و برگه رو منتشر کنید - تمام

اگر باز هم جواب نداد بگید تا نمونه آنلاین بدم

1

به اشتراک گذاری این پست


لینک به پست

متاسفانه باز جواب نداد من فکر کنم مشکلم از دوتا جا میتونه باشه

1.اتصال به دیتا بیس لوکال هاست که مشخصات رو

username : root

Password:

Name : wp

وارد کردم

2. مشکل از تنظیمات وردپرس بنده برای نمایش برگه ها هست.

بنده در حال بررسی هستم

0

به اشتراک گذاری این پست


لینک به پست

شما دارید داخل وردپرس عمل می کنید - می تونید عبارت زیر رو از کد بالا حذف کنید:


<?php new wpdb('DB_username','DB_password','DB_name','localhost'); ?>

2

به اشتراک گذاری این پست


لینک به پست

دوسته گلم

من تمامی مراحل رو بررسی کردم متاسفانه جواب نگرفتم

بعد از وارد کردن نام صفحه داخل کادر صفحه فقط رفرش میشه حتی اشتباه هم وارد میکنم همین اتفاق میوفته

نمیدونم چرا این اتفاق میوفته :(

من متوجه جیزی شدم

وقتی تایتل پست رو وارد میکنم اخطار

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\projects\wordpress\wp-includes\general-template.php:1726) in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\projects\wordpress\wp-content\themes\Radiokolah\pagesearch.php on line27

میگیره

من چطور مینونم نام برگه ای یکتایی که ساختم رو وارد کنم و بعد باز بشه ؟

برای مثال http://localhost/projects/wordpress/l-test/

l-test

نام برگه من هست

اینچیزیه که میخوام بهش برسم

ویرایش شده در توسط Nemesis
0

به اشتراک گذاری این پست


لینک به پست

اینجا رو ببینید:


http://test-line.cloudsite.ir/%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-%D8%B9%D9%86%D8%A7%D9%88%DB%8C%D9%86/

2

به اشتراک گذاری این پست


لینک به پست

کاملا درسته و داره کار میکنه ولی روی لوکال هاست بنده عمل نمیکنه

من مجبورم با این کد که استاندارد نیست کارمو پیش ببرم

با این کد مقادیر داخل فرم به انتهای لینک من اظافه میشه و وارد میشه


<script>
function process()
{
var url="http://localhost/projects/wordpress/" + document.getElementById("url").value;
location.href=url;
return false;
}
</script>
<form onsubmit="return process();">
URL: <input type="text" name="url" id="url"> <input type="submit" value="go">
</form>

البته باز عرض کنم کار استانداردی نیست که این عملیات خارج از وردپرس انجام بشه :(

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط Mr Mirzaei
      سلام
      کد مطالب تصادفی توی وبلاگ های میهن بلاگ چیه؟
      اگه کسی میدونه لطفا بگه خیلی گیرم
      کد بیشترین بازدید چیه توی مطالب؟
      سریع بگید
    • توسط asghar
      سلام
      من یک سایت وردپرسی دارم که خیلی دیر لود میشه 
      میخواستم بدونم برای رفعش باید چی کار کنم؟
      آدرس سایت https://www.hairent.com
       
    • توسط cheeta
      با سلام خدمت اساتید گل وردپرس
      من برای فروش از افزونه edd و با قالب دستکاری شده صحیفه کار میکنم. مشکلی که دارم اینه مه وقتی به عنوان مدیر خرید میکنم تمام مراحل تا پس از پرداخت تا اخر اجرا میشه اما وقتی با نقش های کاربری دیگه از جمله مشترک خرید میکنم وقتی در صفحه سبد خرید روی " خرید و دانلود " کلیک میکنم هیچ اتفاقی نمی افته. یعنی به صفحه پرداخت نمیره و البته هیچ خطایی هم نمیده.
      با عوض کردن قالب مشکل حل میشه اما می خوام مشکل رو در همین قالب بر طرف کنم. چطور میشه این محدودیت رو برای سایر نقش های کاربری برداشت؟ کی چیزی در این زمینه هست؟
    • توسط saeid1872
      سلام دوستان
      تو کمتر از یک ماه سایتم 61 ارور 500 ثبت کرده که در حال زیاد شدن هستش نمیدونم چرا این ارورهارو ثبت میکنه
      لطفا دلیلش رو بگید و اینکه چطور باید رفع کنم
      من خیلی اصلا حرفه ای نیستم فقط خواهشا جوری راهنمایی کنید که بتونم رفعش کنم.

    • توسط hamid.he
      سلام بر دوستان .
      يك سايت با استفاده از قالب هاي آماده روي لوكال هاست طراحي كرده ام تصميم گرفت بقيه كار سايت را بعد از انتقال بر روي هاست انجام دهم . خودم بلد نبودم سايت را به هاست منقل كنم از دوستي خواهش كردم انجام دهد . منتها بعد از انتقال به هاست اولا صفحه به هم ريخته و نادرست است . عكس ها نمي آيند و هم چنين روي هر لينك و يا منويي كليك مي كنيم صفحه به لوكال هاست مي خواهد برود و براي همين چيزي بالا نمي آيد . آدرس سايت : www.behinja.com  مي باشد كه مي توانيد مشاهده . چگونه مي شود اين مشكل را رفع كرد . پيشاپيش از پاسخ گويي دوستان تشكر مي كنم