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

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط nnmmss
      سلام
      من كاملا در وردپرس تازه كار هستم. سايتي با پوسته RealNews طراحي شده. منوهايي دارم كه داراي منو و زير منو هستند. وقتي يك نوشته را به زير منو اختصاص ميدم بعد روي منو ميروم كليه نوشته هاي زير منو را هم نشان ميدهد. مثلا من به اين صورت است
      منو1
      زيرمنو 1-1
      زير منو1-2
       
      من اگر روي زير منو 1-1 كليك كنم فقط نوشته هاي زير منو 1-1 را نشان ميده ولي وقتي روي منو1 كليك كنم تمام نوشته هاي منو1   ,    زيرمنو1-1 و زيرمنو1-2 را نشان ميدهد. چطور ميتوانم اين موضوع را تصحيح كنم كه با كليك كردن روي منو1 فقط نوشته مربوط به منو1 را نشان دهد
    • توسط rendesharif
      با سلام 
      24 ساعت پیش در حال آپدیت تب های وبسایت بودم که اینترنت قطع شد و هنگامی که سعی کردم دوباره وارد کنترل پنل بشم دیدم صفحات ساختار خودشون رو از دست دادن و به نحوی بصورت لایت بارگزاری میشن برای حل این مشکل چیکار میتونم بکنم آیا راه حلی هست.
      تصویر قسمت لاگین هم اضافه کردم میتونید ببینید که دیگه خبری از ساختار اصلی نیست در مابقی صفحات کنترل پنل هم به همین شکل هست

    • توسط naff
      سلام.
      من  میخوام یه صفحه ی استاتیک رو روی ftp  آپلود کنم به عنوان  index اصلی و بعد از کلیک روی دکمه ی مورد نظر کاربر منتقل بشه به سایت اصلی یا همون قالب وردپرس.
       مشکل اینجاست که وقتی صفحه ی  html  رو روی  ftp  آپلود میکنم سایت فقط این صفحه رو به عنوان  index  میشناسه و  این رو جایگزین  index وردپرس میکنه و این صفحه  رو  front page  میشناسه.
       در صورتی که من هر دوتاش رو  میخوام . و صفحه ی html  رو به عنوان  index  میخوام یعنی با وارد کردن اسم سایت اسن صفحه ظاهر بشه.
      صفحه ی اچ دی ام ال:
      https://altourneur.com/new.html
       صفحه ی اصلی سایت:
      https://altourneur.com

       
    • توسط Streetlife
      سلام کارشناسان عزیز و محترم
      دوستان چند روزه هرچی میگردم هیچ چیز مناسبی رو پیدا نمیکنم لطفا کمک بفرمایید.من یک طراح ورد پرسم و میخام واسه یک سایت که بلاگ وردپرس و فروشگاه پرستا شاپ هستش به صورت پاپ اپ یک نظرسنجی رو طراحی کنم که یه سوالی بپرسه و جواب رو بازدیدکننده ها تایپ کنن اما به این صورت که لایو سرچ باشه این فیلد یعنی از بین محصولات که روی دیتا بیس هستند با تایپ یک یا چند حرف ساجست بده لطفااااااااااا راهنمایی بفرمایید
    • توسط amirhosseinganjeh
      سلام دوستان نمیدونم چیکار کردم که عنوان صفحه رو نمایش میده توی همه صفحه ها
      این قسمت ابی رنگو توی عکس اول رو میگم

      تونستم توی صفحاتی که ویرایشگرشون بازه، نمایش عنوان صفحه رو خاموش کنم ولی توی صفحه فروشگاهم نمیتونم نمایشش رو خاموش کنم
       خاموشش هم میکنم باز هم نمایش میده(عکس دوم)
      اگه راه حلی دارید بفرمایید لطفا..