iman64

تبدیل یک متن به متن دیگر

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

ارسال شده در (ویرایش شده)

سلام من مطالب سایت های دیگر رو با فید وردپرس میگیرم یه متنی تقریبا تکراری در همه مطالب اون ار اس اس وجود داره که میخوام تغییرش بدم یعنی هر وقت مطلب جدید وارد شد اون متن انتهایی که وارد سایت من میشه تغییر یافتش وارد بشه متنی که وجود داره این هست

نوشته استخدام مرکز ترجمه تخصصی فراترجمه در تهران اولین بار در «اینجا» پدیدار شد.

که میخوام به

برای دیدن متن کامل در منبع روی عنوان مطلب کلیک کنید استخدام مرکز ترجمه تخصصی فراترجمه در تهران

تبدیل بشه

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

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


لینک به پست

اول از همه باید متن رو به صورت html به دست بیارید (برای اینکار سورس کد صفحه را ببینید یا نشانی آنلاین بگذارید) بعدش

فایل single.php قالبتون رو باز کنید و تابع


the_content();

رو پیدا کنید و تغییرش بدید به


$content = $post->post_content;
$content = str_replace('متن فعلی <a href="#">لینک</a>', '<a href="link">متن جایگزین</a>', $content);
echo $content;

3

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


لینک به پست

ارسال شده در (ویرایش شده)

سورسش


<p>نوشته <a rel="nofollow" href="http://www.linkpagejari.com">استخدام منشی – ۴ خرداد ۹۴</a> اولین بار در <a rel="nofollow" href="http://www.site.com/">«اینجا»</a> پدیدار شد.</p>

که میخوام به


<p>کلیک کنید <a rel="nofollow" href="http://www.linkpagejari.com">استخدام کمک حسابدار – شیراز</a></p>

البته جایی که این لینک http://www.linkpagejari.com گذاشتم این لینک ادرس صفحه جاری هست و در هر مطلبی فرق میکنه

بعد اینکه در صفحه single.php چیزی که گفتید نتونستم انجام بدم

اینم سورس صفحه single.php


<?php
/**
* The Template for displaying all single posts
*
* @package WordPress
* @subpackage Twenty_Fourteen
* @since Twenty Fourteen 1.0
*/
get_header(); ?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php
// Start the Loop.
while ( have_posts() ) : the_post();
/*
* Include the post format-specific template for the content. If you want to
* use this in a child theme, then include a file called called content-___.php
* (where ___ is the post format) and that will be used instead.
*/
get_template_part( 'content', get_post_format() );
// Previous/next post navigation.
twentyfourteen_post_nav();
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) {
comments_template();
}
endwhile;
?>
</div><!-- #content -->
</div><!-- #primary -->
<?php
get_sidebar( 'content' );
get_sidebar();
get_footer();

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

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


لینک به پست

ببخشید اشتباه گفتم که این لینک http://www.linkpagejari.com مال صفحه جاری است در واقع لینکی است که سایت منبع میده و متغییر است

0

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


لینک به پست

اگر اون لینک متغییره که پس متن ثابتی ندارید که بخواهید تغییرش بدید

تابعی که گفتم در فایل content.php قالب شماست ولی وقتی می تونید ری پلیس را انجام دهید که کل مقدار دیتاها ثابت باشند در غیر اینصورت می تونید با جی کوئری دستکاریش کنید که خیلی بهینه نیست (به سایت یک مقدار فشار می اره)

مثل:


<script>
$(".entry-content").each(function() {
var a = $(this).find("p:last-child").find("a:first-child").attr("href");
var t = $(this).find("p:last-child").find("a:first-child").text();
var p = 'کلیک کنید <a href="'+a+'">'+t+'</a>';
$(this).find("p:last-child").html(p);
})
</script>

که باید در footer.php قبل از بسته شدن تگ body قرار بگیره

2

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


لینک به پست

ارسال شده در (ویرایش شده)

اگر اون لینک متغییره که پس متن ثابتی ندارید که بخواهید تغییرش بدید

تابعی که گفتم در فایل content.php قالب شماست ولی وقتی می تونید ری پلیس را انجام دهید که کل مقدار دیتاها ثابت باشند در غیر اینصورت می تونید با جی کوئری دستکاریش کنید که خیلی بهینه نیست (به سایت یک مقدار فشار می اره)

مثل:


<script>
$(".entry-content").each(function() {
var a = $(this).find("p:last-child").find("a:first-child").attr("href");
var t = $(this).find("p:last-child").find("a:first-child").text();
var p = 'کلیک کنید <a href="'+a+'">'+t+'</a>';
$(this).find("p:last-child").html(p);
})
</script>

که باید در footer.php قبل از بسته شدن تگ body قرار بگیره

به این صورت تقریبا حل کردم


$content = $post->post_content;
$content = str_replace('نوشته ', 'برای دیدن خبر در سایت منبع کلیک کنید:', $content);
$content = str_replace('اولین بار در', '', $content);
$content = str_replace('پدیدار شد.', '', $content);
echo $content;

منتهی یه چیز دیگر میخوام در اینجا یه متن که داخل لینکی وجود داره متغییر هست در هر مطلبی اینو چه جور میتونم کاری کنم که لینک در پنجره جدید باز بشه اگه متن و لینکش ثابت می بود میشد کاری کرد اما چون متغییر هست نمیتونم . ممنون میشم کمک کنید تشکر

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

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


لینک به پست

ارسال شده در (ویرایش شده)

سلام استاد جان من برای جایگزینی متن از کد


$content = $post->post_content;
$content = str_replace('منبع : ', 'تومن', $content);
echo $content;

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

از روش زیر هم استفاده کردم که اصلا متن رو نه توی ادامه مطلب عوض کرد و نه توی چکیده مطلب


function replace_words($content){
$olds = array('دریافت فایل', 'منبع', 'vpn');
$news = array('دانلود فایل', 'تومان', 'v.p.n');
$content = str_replace($olds , $news ,$content);
return $content;
}
add_filter('the_content', 'replace_words');
add_filter('the_excerpt', 'replace_words');

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

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


لینک به پست


$excerpt = get_the_excerpt();
$content = str_replace('منبع : ', 'تومن', $excerpt);
echo $content;

رو با


the_excerpt();

در فایلهایی که چکیده مطلب رو فراخوانی می کنه عوض کنید

1

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


لینک به پست

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

0

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


لینک به پست

این دیگه به کدهای قالبتون و توابعتون مربوط می شه تو انجمن فقط بر اساس توابع استاندارد راهنمایی می شه

می تونید با جی کوئری هم همین کار را بکنید که مستقیما روی خروجی اثر بگذاره و به مشکل نخورید

به این ترتیب

1. تابع های the_content و the_excerpt را در کل قالبتون بیابید و داخل یک دایو با کلاس مشخص قرار بدید مثلا کلاس post و این کد را به footer.php قالب اضافه کنید


<script>
$(".post").each(function() {
var h = $(this).html();
var h = h.replace('منبع : ', 'تومن');
$(this).html(h);
});
</script>

1

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


لینک به پست

دو نکته:

1. برای عباراتی مثل "تومن" ازش استفاده نکنید چون در تمام متن مطالب عبارت ریپلیس می شه حتی اگر "تومن" بخشی از یک کلمه بزرگتر باشه سعی کنید عبارتتون ترکیب چند کلمه در کنار هم باشه که امکان تشابهش در جای دیگه ای از مطلب وجود نداشته باشه

2. متن را بجای تایپ کردن مستقیما از سورس کد خروجی فعلی سایتتون کپی کنید یعنی یکی از مطالب فیدوردپرسیتون رو باز کنید و از صفحه سورس بگیرید و با ctrl+f عبارت مد نظرتون رو توش بیابید و سورسش رو ازش کپی و پیست کنید به کدهاتون چون اولا ممکنه عبارت داخل تگی قرار گرفته که دیده نشه مثل تگ span و ثانیا ممکنه کارکترهایی توی عبارت باشند که در ظاهر قابل تشخیص نباشند مثلا نیم فاصله جای فاصله قرار داشته باشه

1

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


لینک به پست

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

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

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

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


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

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

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


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