Nemesis

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

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

سلام دوستان

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

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

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

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

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

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

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

با تشکر

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


لینک به پست

اصولاً جستجو در هسته وردپرس تعریف میشه پس دو راه دارید - یکی تغییر در هسته (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 آمده

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

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

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

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


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

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


لینک به پست

حق با شماست

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

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

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

کمک کنید

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

باز هم متشکرم

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


لینک به پست

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

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


لینک به پست

تست کنید:


<?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

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


لینک به پست

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

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

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

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

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

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

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

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


لینک به پست

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

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

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

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

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


لینک به پست

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

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

username : root

Password:

Name : wp

وارد کردم

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

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

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


لینک به پست

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


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

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


لینک به پست

دوسته گلم

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

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

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

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

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

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

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


لینک به پست

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


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/

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


لینک به پست

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

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

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


<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>

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

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط hamid.he
      سلام بر دوستان .
      يك سايت با استفاده از قالب هاي آماده روي لوكال هاست طراحي كرده ام تصميم گرفت بقيه كار سايت را بعد از انتقال بر روي هاست انجام دهم . خودم بلد نبودم سايت را به هاست منقل كنم از دوستي خواهش كردم انجام دهد . منتها بعد از انتقال به هاست اولا صفحه به هم ريخته و نادرست است . عكس ها نمي آيند و هم چنين روي هر لينك و يا منويي كليك مي كنيم صفحه به لوكال هاست مي خواهد برود و براي همين چيزي بالا نمي آيد . آدرس سايت : www.behinja.com  مي باشد كه مي توانيد مشاهده . چگونه مي شود اين مشكل را رفع كرد . پيشاپيش از پاسخ گويي دوستان تشكر مي كنم
    • توسط MahTV
      سلام دوستان و اساتید عزیز
      اگه بخوایم به صورت شرطی (کوچک بودن صفحه نمایش ) تو موبایل یک باکس رو (مثل باکس دانلود) به کاربر در حالت چرخش صفحه نشون بدیم 
      و به کاربر بگیم که برا دیدن لینک ها باید گوشی موبایلت رو بچرخونی باید چیکار کنیم ؟
       
      من این کد رو از سایتی برداشتم ولی نمیدونم چطور باید ازش استفاده کنم 
      <div class="alerta"><b class="icon-screen-rotation"></b><p style="text-align: center;"><span style="font-family: tahoma,arial,helvetica,sans-serif;">برای دیدن لینکهای دانلود ، موبایل خود را بچرخانید . دقت کنید گزینه اسکرین روتیشن یا چرخش صفحه در دستگاه شما روشن باشد </span></p></div>  
       
       
       
       
    • توسط amir_hossein
      سلام دوستان من قصد دارم چندتا اسلاید کناره هم به صورت خطی (مثلا 4 تا اسلاید) اواسط صفحه اصلی یا انتهای صفحه قرار بدم.افزونه ای میتونید بهم معرفی کنید برای اینکار؟
    • توسط amir_hossein
      سلام دوستان من قصد دارم چندتا اسلاید کناره هم به صورت خطی (مثلا 4 تا اسلاید) اواسط صفحه اصلی یا انتهای صفحه قرار بدم.افزونه ای میتونید بهم معرفی کنید برای اینکار؟
    • توسط armakcell
      سلام ، بنده یک مشکل خیلی بزرگ دارم اگر به بنده کمک کنید واقعا مدیون شما میشم
      بنده افزونه سئو را در وردپرس نصب کرده ام و اما هویت گوگل وقتی کد را میفرستد و بنده میزنم میگوید نمایه وجود ندارد
      فایلی را آپلود میکنم ببینید متوجه مشکل بنده میشید