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

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط amirrezaweb
      با سلام 
      میخواستم بدونم چجوری میتونم یک صفحه مثل صفحه ای که اینجا لینکشو گذاشتم درست کنم افزونه ای میخواد آیا؟ منظورم خلاصه بودن مطلباشه
      https://www.yasdl.com/category/نرم-افزار-اینترنت/نرم-افزار-مرورگر
       
    • توسط prooshe
      سلام خسته نباشید.
      من بدون فعالسازی ssl و نصب افزونه از قسمت تنظیمات وردپرسم آدرس سایتم را از http به https تغییر دادم الان دیگه نه سایتم بالا میاد نه دسترسی به مدیریتم دارم تا دوباره ویرایش کنم لطفا راهنمایی کنید؟
    • توسط samadionline
      سلام خدمت شما عزیزان
      چطوری میشه در وردپرس مثل جوملا برای کاربران گروه و سطوح دسترسی تعریف کرد؟
      و همچنین اینکه در جوملا در تنظیمات میشد صفحه آفلاین تعریف کرد و کاربران با لاگین کردن وارد صفحه اصلی سایت میشدند در وردپرس چطور میشه این کار رو انجام داد؟
      تشکر می کنم اگر کسی سر در میاره یه توضیح مختصر بده
    • توسط ashkan91
      با سلام و خسته نباشید
      دوستان کسی میدونه چطور میشه فیلد ایمیل رو از تو فرم تسویه حساب ووکامرس غیرضروری کرد؟ (بدون استفاده از افزونه) یکی از دوستان این لینک رو فرستادن اما نمیدونم کدام تکه کد از این صفحه را میبایست درون کدهای سایت قرار بدم که مشکل حل بشه؟
      https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/#example-make-phone-number-not-required
    • توسط aiinaz
      سلام دوستان 
       برای فونت من از @font face استفاده کردم تا فونتی که لازم دارم اعمال بشه اما نمی دونم چرا هر دفعه که صفحه رفرش میشه برای چند ثانیه فونت تغییر میکنه؟!!!! از نظر ادرس دهی هم درست انجام دادم و بعضی از فونت ها کلا اعمال نمیشه با اینکه روی سیستمم دارم؟!!!